首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

設計模式學習總結:封裝變化、多型本質與模式資源指南

     編輯:Java 相關知識

設計模式的核心價值

從表面看,TrashVisitor.java 等模式包含更多代碼,留下效率不高印象。但關鍵在於達到什麼目的。設計模式特別適合「將發生變化的東西與保持不變的東西隔離開」。變化可能源於新環境、環境變化(如用戶需新增幾何形狀)、代碼主體持續改進。TrashVisitor.java 允許方便新增功能不干擾 Trash 結構。Visitor 新增功能代價極小,若頻繁此類活動,多些代碼值得。

變化序列發現的時機

變化序列發現非常規事;初始設計前分析師難以預測。必要資訊常在設計後期或最終實現階段才顯露:有時進入維護階段擴充系統才知需要特定繼承結構。

多型觀點的根本轉變

透過設計模式學習,體會到最重要觀點——本書一直宣揚「多型是 OOP 全部」已徹底改變。難以「獲得」多型;獲得後嘗試將所有設計鑄入特定模具。設計模式要表明:「OOP 不僅僅同多型有關」。應與 OOP 相關的是「將發生變化的東西同保持不變的東西分隔開來」。多型是達成此目的極重要手段,語言直接支援多型更有用(省力省時)。但設計模式揭示達成基本目標的其他常規途徑,熟悉掌握後能做出更有創新性設計。

模式資源與社群

《Design Patterns》 影響深遠,程式設計師紛尋找其他模式。Jim Coplien 推薦站點:
• https://st-www.cs.uiuc.edu/users/patterns
• https://c2.com/cgi/wiki
• https://c2.com/ppr
• https://www.bell-labs.com/people/cope/Patterns/Process/index.html
• https://www.bell-labs.com/cgi-user/OrgPatterns/OrgPatterns
• https://st-www.cs.uiuc.edu/cgi-bin/wikic/wikic
• https://www.cs.wustl.edu/~schmidt/patterns.html
• https://www.espinc.com/patterns/overview.html
每年召開權威設計模式會議 PLOP,出版學術論文,第三屆 1997 年底舉行,資料由 Addison-Wesley 出版。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved