一、什麼是設計模式
設計模式(Design Pattern)是一套被反複使用、多數人知曉的、經過分類的、代碼設計經驗的總結。
- 模式被認為是曆經驗證的OO設計經驗
- 模式不是代碼,而是針對設計問題的通用解決方案。你可以把它應用到特定的應用中
- 模式不是被發明,而是被發現
- 大多數模式跟原則,都着眼于軟體變化的主題
- 大多數的模式都允許系統局部改變獨立于其他部分
- 我們常把系統中會變化的部分抽出來封裝
二、為什麼要使用設計模式
為了代碼可重用性、讓代碼更容易被他人了解、保證代碼可靠性。
- 知道OO基礎,并不足以設計出良好的OO系統
- 模式可以讓我們建造出具有良好OO設計品質的系統
- 模式讓開發人員之間有共享的語言,能夠最大化溝通的價值
三、如何使用設計模式
我們先了解一下設計原則
- 找出應用中可能需要變化之處,把它們獨立出來,不要和那些不需要變化的代碼混在一起。 --封裝變化
- 針對接口程式設計,而不是針對實作程式設計。
- 多用組合,少用繼承 --合成/聚合複用
- 類應該對拓展開發,對修改變比。 --開閉原則
- 為了互動對象之間的松耦合設計而努力
- 待續…
以上是HeadFirst書中介紹的設計原則,與網上流傳的略有不同,但大體相近。具體的設計模式在後續文章中介紹,并且分析模式中使用的設計原則。
四、常用的設計模式
- 企業中常用的有政策模式、建造者模式、觀察者模式等,其中觀察者模式在mq中間件、redis、微服務中被廣泛使用。
- 以下是java類庫中常用的設計模式
- 觀察者模式 --java.util.Observable、JMI
- 裝飾者模式 --java io包
本章作為設計模式學習的開篇,尚有許多不完整的地方,等學習完成之後再進行補充。