這篇文章不適合深入學習設計模式,因為沒有代碼,沒有模式擴展。
正確的使用方式:1. 初學者在深入學習之前先留下一個粗略的印象。2. 已經系統學習了設計模式的人快速回顧。
簡單工廠模式
核心思想:將類的創建過程與對象的使用過程分離。

具體實現過程:定義一個工廠,根據參數(通常是字符串)的不同返回不同類的實例。因為我們希望將工廠生產的對象可以使用相同的方式處理,所以產品類類通常會實現相同的接口。
工廠方法模式
核心思想:簡單工廠基礎上,通過實例化不同的工廠,來創建不同的類。
具體實現過程:在簡單工廠的基礎上,對工廠進行抽象,將類的創建過程延遲到工廠的子類中完成。這樣做的好處是當需要新增加一個新的產品類的時候,只需要新增一個“具體的工廠”就可以,而不需要像簡單工廠一樣,修改工廠類的具體實現。符合“開閉原則”。
抽象工廠模式
核心思想:工廠方法基礎上,讓一個工廠生產一類對象。
具體實現過程:在工廠方法的基礎上,在一個具體工廠中實現生產不同產品的方法。可以達到方便生產一個“產品簇”的目的。
建造者模式
核心思想:定義一個建造過程,具體的建造放在子類當中,這樣可以使用相同的建造過程構造不同的實例。
原型模式
核心思想:使用Object類的clone方法,快速復制對象。
單例模式
核心思想:讓一個類自身持有其實例的成員變量,聲明為static
和private
,來達到系統中只有一個實例的目的。

具體實現過程:為了確保全系統只有一個實例,所以不可以讓用戶自己創建,所以這個類需要一個private
的構造函數。還需要一個getInstance()
方法用來獲得這個唯一的實例,因為需要在系統的每一處都能獲得,所以這個方法應該是public
的。因為調用的getInstance()
的目的是獲取實例,只能在類上面調用,所以getInstance()
應該是static
的。
適配器模式
核心思想:創建一個適配器類可以同時具備有現有類的行為,和期望的接口。
具體實現過程:分為兩種情況
- 類適配器:適配器類實現期望的接口,繼承現有的類已獲得他的行為(方法)。
- 對象適配器:適配器類實現期望的接口,並持有現有類的實例,通過實例調用方法。 目的都是相同的。
橋接模式
核心思想:使用組合或者聚合的方式處理抽象和實現之間的聯系,讓具體的實現在不同維度上變化
組合模式
核心思想:讓具體類和這些類的容器實現同一個接口,用戶調用到容器類時使用遞歸調用,不需要區分這兩者的區別。
外觀模式
核心思想:在外觀類內實現具體的操作,用戶只需要和外觀類打交道,屏蔽方法調用細節。
享元模式
核心思想:建一個對象池,復用需要在系統中多次出現的對象。
裝飾模式
核心思想:,裝飾器和被裝飾的對象有相同的接口,裝飾器在使用時獲得被裝飾的對象,為其增加新的操作。
具體實現過程:不論是具體的組件,和裝飾過后的組件,都希望可以用相同過的方式使用,所以實現同一個接口。裝飾類需要持有一個具體組件的實例,才能調用他的方法,所以需要一個聚合關聯。
代理模式
核心思想:代理類持有具體實現類的實例,將在代理類上的操作轉化為實例上方法的調用。
(原文地址:https://www.jianshu.com/p/dd2bbbbcddab 。 尊重原創,感謝作者!)