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

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                ## 工廠方法模式 ### 又稱工廠模式,是對簡單工廠模式的進一步抽象化,其好處是可以使用系統在不修改原來代碼的情況下引進新的產品,即滿足開閉原則 ### 通過工廠類定義負責創建產品的公共接口,通過子類來確定所需要創建的類型 ### 相比簡單工廠而言,此種方法具有更多的可擴展性和復用性,同時也增強了代碼的可讀性 ### 將類的實例化(具體產品的創建)延遲到了工廠類的子類(具體工廠)中完成,即由子類來決定應該實例化哪一個類 ### ## 核?組成 ### IProduct:抽象產品類,描述所有實例所共有的公共接口 Product:具體產品類,實現抽象產品類的接?,??類創建對象,如果有多個需要定義多個 IFactory:抽象??類,描述具體??的公共接? Factory:具體?場類,實現創建產品類對象,實現抽象??類的接?,如果有多個需要定義多個 ### ![](https://img.kancloud.cn/7b/89/7b898a28c2f2fdcd8601e35df2df8038_733x336.png) ### ## 優點: ### 符合開閉原則,增加?個產品類,只需要實現其他具體的產品類和具體的??類; 符合單?職責原則,每個??只負責?產對應的產品 使?者只需要知道產品的抽象類,?須關?其他實現類,滿?迪?特法則、依賴倒置原則和??替換原則 迪?特法則:最少知道原則,實體應當盡量少地與其他實體之間發?相互作? 依賴倒置原則:針對接?編程,依賴于抽象?不依賴于具體 ??替換原則:俗稱LSP, 任何基類可以出現的地?,?類?定可以出現, 對實現抽象化的具體步驟的規范 ### ## 缺點: ### 增加?個產品,需要實現對應的具體??類和具體產品類; ### ## 具體實現(云效代碼study-java項目當中設計模式當中有代碼案例) ### 先來看抽象支付接口和具體支付類: ### ![](https://img.kancloud.cn/d6/b3/d6b3b6205abd3c50eedf5d7e8514f636_1888x962.png) ### 再來看抽象工廠接口和具體工廠類: ### ![](https://img.kancloud.cn/de/01/de018fa40a2d57da3de772d3e1aa4c45_1875x947.png) ### ![](https://img.kancloud.cn/a7/1b/a71b163d59208d8aad6c0a237b446106_1124x681.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>

                              哎呀哎呀视频在线观看