<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ### 模板方法模式 定義一個操作中的算法的骨架,而將一些步驟延遲到子類中。模板方法使得子類可以不改變一個算法的結構即可重新定義該算法的某些特定步驟。(摘抄) 模板方法模式使一個比較簡單的模式,平時其實編程中肯定用得挺多的,只是不知道叫這個名字罷了,模板方法模式就是把一些固定的行為放到超類中去,去掉這些重復的代碼從而減少代碼量,這樣就提供了一個復用性很好的代碼平臺。 回調中其實就用到了模板方法模式。 舉個生活中很簡單的例子,你要到開門進入房間,那么過程總是先開門,再進入房間。開門的方法有很多種,密碼,聲控,鑰匙等,進入房間的方法也有很多種,走進,跑進,爬進,跳進等。那么這時就可以把開門進入房間這個固定的過程作為一個模板,然后具體的方法具體繼承實現。 ~~~ abstract class OpenCome { public abstract void open(); public abstract void come(); public void templateMethod() { open(); come(); System.out.println("我已進入"); } } class KeyOpenWalkCome extends OpenCome { @Override public void open() { // TODO Auto-generated method stub System.out.println("鑰匙開門"); } @Override public void come() { // TODO Auto-generated method stub System.out.println("走入門內"); } } class VoiceOpenWalkCome extends OpenCome { @Override public void open() { // TODO Auto-generated method stub System.out.println("聲控開門"); } @Override public void come() { // TODO Auto-generated method stub System.out.println("跑入門內"); } } class Client { public static void main() { OpenCome openCome = new KeyOpenWalkCome(); openCome.templateMethod(); openCome = new VoiceOpenWalkCome(); openCome.templateMethod(); } } ~~~ 上面舉的開門進入的例子代碼差不多就是這樣實現,當你需要改變實現方法時繼承父類重寫動作就好了。把一些重復的代碼抽象出來變成模板,這樣自己使用會更方便,同時代碼結構也會比較清晰
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看