<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之旅 廣告
                # 16.9 總結 從表面看,由于象`TrashVisitor.java`這樣的設計包含了比早期設計數量更多的代碼,所以會留下效率不高的印象。試圖用各種設計模式達到什么目的應該是我們考慮的重點。設計模式特別適合“將發生變化的東西與保持不變的東西隔離開”。而“發生變化的東西”可以代表許多種變化。之所以發生變化,可能是由于程序進入一個新環境,或者由于當前環境的一些東西發生了變化(例如“用戶希望在屏幕上當前顯示的圖示中添加一種新的幾何形狀”)。或者就象本章描述的那樣,變化可能是對代碼主體的不斷改進。盡管廢品分類以前的例子強調了新型`Trash`向系統的加入,但`TrashVisitor.java`允許我們方便地添加新功能,同時不會對`Trash`結構造成干擾。`TrashVisitor.java`里確實多出了許多代碼,但在`Visitor`里添加新功能只需要極小的代價。如果經常都要進行此類活動,那么多一些代碼也是值得的。 變化序列的發現并非一件平常事;在程序的初始設計出臺以前,那些分析家一般不可能預測到這種變化。除非進入項目設計的后期,否則一些必要的信息是不會顯露出來的:有時只有進入設計或最終實現階段,才能體會到對自己系統一個更深入或更不易察覺需要。添加新類型時(這是“回收”例子最主要的一個重點),可能會意識到只有自己進入維護階段,而且開始擴充系統時,才需要一個特定的繼承結構。 通過設計模式的學習,大家可體會到最重要的一件事情就是本書一直宣揚的一個觀點——多態性是OOP(面向對象程序設計)的全部——已發生了徹底的改變。換句話說,很難“獲得”多態性;而一旦獲得,就需要嘗試將自己的所有設計都轉換到一個特定的模子里去。 設計模式要表明的觀點是“OOP并不僅僅同多態性有關”。應當與OOP有關的是“將發生變化的東西同保持不變的東西分隔開來”。多態性是達到這一目的的特別重要的手段。而且假如編程語言直接支持多態性,那么它就顯得尤其有用(由于直接支持,所以不必自己動手編寫,從而節省大量的精力和時間)。但設計模式向我們揭示的卻是達到基本目標的另一些常規途徑。而且一旦熟悉并掌握了它的用法,就會發現自己可以做出更有創新性的設計。 由于《設計模式》這本書對程序員造成了如此重要的影響,所以他們紛紛開始尋找其他模式。隨著的時間的推移,這類模式必然會越來越多。JimCoplien(`http://www.bell-labs.com/~cope` 主頁作者)向我們推薦了這樣的一些站點,上面有許多很有價值的模式說明: http://st-www.cs.uiuc.edu/users/patterns http://c2.com/cgi/wiki http://c2.com/ppr http://www.bell-labs.com/people/cope/Patterns/Process/index.html http://www.bell-labs.com/cgi-user/OrgPatterns/OrgPatterns http://st-www.cs.uiuc.edu/cgi-bin/wikic/wikic http://www.cs.wustl.edu/~schmidt/patterns.html http://www.espinc.com/patterns/overview.html 同時請留意每年都要召開一屆權威性的設計模式會議,名為PLOP。會議會出版許多學術論文,第三屆已在1997年底召開過了,會議所有資料均由Addison-Wesley出版。
                  <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>

                              哎呀哎呀视频在线观看