天天看點

HeadFirst 設計模式--概述

一、什麼是設計模式

設計模式(Design Pattern)是一套被反複使用、多數人知曉的、經過分類的、代碼設計經驗的總結。
  • 模式被認為是曆經驗證的OO設計經驗
  • 模式不是代碼,而是針對設計問題的通用解決方案。你可以把它應用到特定的應用中
  • 模式不是被發明,而是被發現
  • 大多數模式跟原則,都着眼于軟體變化的主題
  • 大多數的模式都允許系統局部改變獨立于其他部分
  • 我們常把系統中會變化的部分抽出來封裝

二、為什麼要使用設計模式

為了代碼可重用性、讓代碼更容易被他人了解、保證代碼可靠性。
  • 知道OO基礎,并不足以設計出良好的OO系統
  • 模式可以讓我們建造出具有良好OO設計品質的系統
  • 模式讓開發人員之間有共享的語言,能夠最大化溝通的價值

三、如何使用設計模式

我們先了解一下設計原則

  1. 找出應用中可能需要變化之處,把它們獨立出來,不要和那些不需要變化的代碼混在一起。 --封裝變化
  2. 針對接口程式設計,而不是針對實作程式設計。
  3. 多用組合,少用繼承 --合成/聚合複用
  4. 類應該對拓展開發,對修改變比。 --開閉原則
  5. 為了互動對象之間的松耦合設計而努力
  6. 待續…

以上是HeadFirst書中介紹的設計原則,與網上流傳的略有不同,但大體相近。具體的設計模式在後續文章中介紹,并且分析模式中使用的設計原則。

四、常用的設計模式

  1. 企業中常用的有政策模式、建造者模式、觀察者模式等,其中觀察者模式在mq中間件、redis、微服務中被廣泛使用。
  2. 以下是java類庫中常用的設計模式
  • 觀察者模式 --java.util.Observable、JMI
  • 裝飾者模式 --java io包

本章作為設計模式學習的開篇,尚有許多不完整的地方,等學習完成之後再進行補充。