<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之旅 廣告
                最近對于設計模式中的工廠三姐妹——大姐(抽象工廠)、二姐(工廠模式)、三姐(簡單工廠),進一步學習了,以下是我的一些認識。 ### 一、簡單工廠 ![](https://box.kancloud.cn/2016-04-07_57060889522cd.jpg) 運用了一個單獨的類將創建實例的過程獨立出來,這就是簡單工廠類,如:簡單運算工廠類,至于在運用的過程中,如果增加運算運算,需要修改運算工廠類,這就違背了 開放—封閉原則(盡可能使代碼做到擴展的開放,更改的封閉,也就是對于程序的改動通過增加代碼進行,而不是更改現有的代碼)。 ### 二、工廠模式 ![](https://box.kancloud.cn/2016-04-07_5706088969678.jpg) 相對于以上的簡單工廠增加了工廠子類,使一個類的實例話延遲到子類,這樣在增加運算的時候只需要增加對應的運算工廠就可以了,這樣就解決了簡單工廠不符合開放-封閉原則的缺點。 **簡單工廠VS工廠方法** 工廠方法解決了簡單工廠加Case判斷的麻煩,但是每次增加運算需要在代碼中增加相關的工廠 并且再去修改客戶端,這樣也是很復雜的。 其實完全可以運用簡單工廠+反射,這樣就比單單的工廠方法簡單多了。 ### 三、抽象工廠 ![](https://box.kancloud.cn/2016-04-07_570608897f035.jpg) 抽象工廠易于交換產品系列(一個應用只需要在初始化的過程中出現一次,所以改變應用的具體工廠會很容易),并且將創建實例過程與客戶端分離,產品的具體類名也被具體的工廠實現分離。 但是如果增加功能時,抽象工廠需要修改很多地方,這里就用一個簡單工廠代替了所有具體工廠。 問題又出來了,用簡單工廠會遇到Case判斷分支的麻煩,不過沒關系,前面提到過運用反射這個問題就很容易解決了。 對于工廠三姐妹目前只是了解了這些,相信會在以后的編程路上對她們的理解更加深刻,期待以后的再次相遇。
                  <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>

                              哎呀哎呀视频在线观看