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

                ## Introduction 介紹 **設計模式:** 提供了一種廣泛的可重用的方式來解決我們日常編程中常常遇見的問題。設計模式并不一定就是一個類庫或者第三方框架,它們更多的表現為一種思想并且廣泛地應用在系統中。 它們也表現為一種模式或者模板,可以在多個不同的場景下用于解決問題。設計模式可以用于加速開發,并且將很多大的想法或者設計以一種簡單地方式實現。當然,雖然設計模式在開發中很有作用,但是千萬要避免在不適當的場景誤用它們。 ## Category 分類 根據目的和范圍,設計模式可以分為五類。 按照目的分為:**創建設計模式,結構設計模式,以及行為設計模式。** 按照范圍分為:**類的設計模式,以及對象設計模式。** ## 按照目的分 目前常見的設計模式主要有23種,根據使用目標的不同可以分為以下三大類 **創建設計模式(Creational Patterns)(5種):** 用于創建對象時的設計模式。更具體一點,初始化對象流程的設計模式。當程序日益復雜時,需要更加靈活地創建對象,同時減少創建時的依賴。而創建設計模式就是解決此問題的一類設計模式。 * 單例模式(Singleton) * 工廠模式(Factory) * 抽象工廠模式(AbstractFactory) * 建造者模式(Builder) * 原型模式(Prototype) **結構設計模式(Structural Patterns)(7種):** 用于繼承和接口時的設計模式。結構設計模式用于新類的函數方法設計,減少不必要的類定義,減少代碼的冗余。 * 適配器模式【Adapter】 * 橋接模式【Bridge】 * 合成模式【Composite】 * 裝飾器模式【Decorator】 * 門面模式【Facade】 * 代理模式【Proxy】 * 享元模式【Flyweight】 **行為模式(Behavioral Patterns)(11種):** 用于方法實現以及對應算法的設計模式,同時也是最復雜的設計模式。行為設計模式不僅僅用于定義類的函數行為,同時也用于不同類之間的協議、通信。 * 策略模式【Strategy】 * 模板方法模式【TemplateMethod】 * 觀察者模式【Observer】 * 迭代器模式【Iterator】 * 責任鏈模式【ResponsibilityChain】 * 命令模式【Command】 * 備忘錄模式【Memento】 * 狀態模式【State】 * 訪問者模式【Visitor】 * 中介者模式【Mediator】 * 解釋器模式【Interpreter】 ## 按照范圍分 類的設計模式,以及對象設計模式 **類的設計模式(Class patterns):** 用于類的具體實現的設計模式。包含了如何設計和定義類,以及父類和子類的設計模式。 **對象設計模式(Object patterns):** 用于對象的設計模式。與類的設計模式不同,對象設計模式主要用于運行期對象的狀態改變、動態行為變更等。
                  <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>

                              哎呀哎呀视频在线观看