創建型模式

創建型模式有五種具體的模式,分別爲:

  1. 單例模式
  2. 原型模式
  3. 建造模式(Builder模式)
  4. 工廠方法模式
  5. 抽象工廠模式

對比:

模式 定義 使用場景
單例模式 確保某一個類只有一個實例,而且自行實例化並向整個系統提供這個實例 確保某各類有且只有一個對象的場景
原型模式 用原型實例指定創建對象的種類,並通過拷貝這些原型創建新的對象 1.類初始化需要消耗非常多的資源;2.通過new 產生一個對象需要非常繁瑣的數據準備或訪問權限;3.一個對象需要提供給其它對象訪問,而且各個調用者可能需要修改其值時。
建造模式 將一個複雜對象的構建與它的表示分離,使得同樣的構建過程可以創建不同的表示 1.相同的方法,不同的執行順序,產生不同的時間結果時;2.多個部件或零件,都可以裝配到一個對象中,但是產生的運行結果又不相同時;3.產品類非常複雜,或者產品類中的調用順序不同產生了不同的作用時;4.初始化一個對象特別複雜時。
工廠方法模式 定義一個用於創建對象的接口,讓子類決定實例化哪個類 在任何需要生成複雜對象的地方,都可以使用工廠方法模式。複雜對象適合使用工廠模式,用new 就可以完成創建的對象無需使用工廠模式
抽象工廠模式 爲創建一組相關或者是相互依賴的對象提供一個接口,而不需要指定它們的具體類 一個對象族有相同的約束時可以使用抽象工廠模式

工廠方法與抽象工廠比較:
類圖比較:
工廠方法:
在這裏插入圖片描述
抽象工廠:
在這裏插入圖片描述
下面把工廠方法模式的類圖修改一下:
在這裏插入圖片描述
可以看到工廠方法只生產一個產品,而抽象工廠創建一組產品。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章