<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 功能強大 支持多語言、二開方便! 廣告
                17.4 最佳實踐 裝飾模式是對繼承的有力補充。你要知道繼承不是萬能的,繼承可以解決實際的問題,但是在項目中你要考慮諸如易維護、易擴展、易復用等,而且在一些情況下(比如上面那個成績單例子)你要是用繼承就會增加很多子類,而且靈活性非常差,那當然維護也不容易了,也就是說裝飾模式可以替代繼承,解決我們類膨脹的問題。同時,你還要知道繼承是靜態地給類增加功能,而裝飾模式則是動態地增加功能,在上面的那個例子中,我不想要SortDecorator這層的封裝也很簡單,于是直接在Father中去掉就可以了,如果你用繼承就必須修改程序。 裝飾模式還有一個非常好的優點:擴展性非常好。在一個項目中,你會有非常多的因素考慮不到,特別是業務的變更,不時地冒出一個需求,尤其是提出一個令項目大量延遲的需求時,那種心情是相當的難受!裝飾模式可以給我們很好的幫助,通過裝飾模式重新封裝一個類,而不是通過繼承來完成,簡單點說,三個繼承關系Father、Son、GrandSon三個類,我要在Son類上增強一些功能怎么辦?我想你會堅決地頂回去!不允許,對了,為什么呢?你增強的功能是修改Son類中的方法嗎?增加方法嗎?對GrandSon的影響呢?特別是GrandSon有多個的情況,你會怎么辦?這個評估的工作量就夠你受的,所以這是不允許的,那還是要解決問題的呀,怎么辦?通過建立SonDecorator類來修飾Son,相當于創建了一個新的類,這個對原有程序沒有變更,通過擴展很好地完成了這次變更。
                  <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>

                              哎呀哎呀视频在线观看