<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>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                <!-- Building Application Frameworks --> ## 構建應用程序框架 應用程序框架允許您從一個類或一組類開始,創建一個新的應用程序,重用現有類中的大部分代碼,并根據需要覆蓋一個或多個方法來定制應用程序。 **模板方法模式** 應用程序框架中的一個基本概念是模板方法模式,它通常隱藏在底層,通過調用基類中的各種方法來驅動應用程序(為了創建應用程序,您已經覆蓋了其中的一些方法)。 模板方法模式的一個重要特性是它是在基類中定義的,并且不能更改。它有時是一個 **private** 方法,但實際上總是 **final**。它調用其他基類方法(您覆蓋的那些)來完成它的工作,但是它通常只作為初始化過程的一部分被調用(因此框架使用者不一定能夠直接調用它)。 ```Java // patterns/TemplateMethod.java // Simple demonstration of Template Method abstract class ApplicationFramework { ApplicationFramework() { templateMethod(); } abstract void customize1(); abstract void customize2(); // "private" means automatically "final": private void templateMethod() { IntStream.range(0, 5).forEach( n -> { customize1(); customize2(); }); }}// Create a new "application": class MyApp extends ApplicationFramework { @Override void customize1() { System.out.print("Hello "); }@Override void customize2() { System.out.println("World!"); } } public class TemplateMethod { public static void main(String[] args) { new MyApp(); } } /* Output: Hello World! Hello World! Hello World! Hello World! Hello World! */ ``` 基類構造函數負責執行必要的初始化,然后啟動運行應用程序的“engine”(模板方法模式)(在GUI應用程序中,這個“engine”是主事件循環)。框架使用者只提供 **customize1()** 和 **customize2()** 的定義,然后“應用程序”已經就緒運行。 ![](images/designproxy.png)
                  <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>

                              哎呀哎呀视频在线观看