iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 27
0
自我挑戰組

初探設計模式系列 第 27

[ Day 27 ] 初探設計模式 - 建立型模式

前言

昨天算是把最後一種模式介紹完了,回去看了一下前面十天寫的東西可能文筆比較不好(?),可能有些東西可以再重新整理一下,最後四天就做一個整體的分類整理,重新認識一下使用方式(避免濫用...)

定義

建立型模式隱藏了這些類別的實體是如何被建立和放在一起,整個系統關於這些物件所知道的,是由抽象類別所定義的介面。這樣,建立型模式在建立了什麼、誰建立它、它是怎麼被建立的,以及何時建立這些方面提供了很大的靈活性。

-- Design Pattern by GoF [大話設計模式 p.454]

下面這五種模式我們稱為建立型模式(建造型),使用這些模式我們希望達到不自己創建物件的效果(在程式碼中不使用new),把創建的過程封裝起來,從而達到單一實例提升效能容易擴充···等等的好處。

  • 單例模式 (獨體模式) ( Singleton Pattern )
  • 工廠方法模式 ( Factory Method Pattern )
  • 抽象工廠模式 ( Abstract Factory Pattern )
  • 建造者模式 ( Builder Pattern )
  • 原形模式 ( Prototype Pattern)

獨體模式(單例模式) ( Singleton )

保證一個類別僅有一個實體,並提供一個存取它的全域存取點。

定義一個操作,允許客戶端使用這個操作取得他的唯一實例,GetInstance()負責建立他的唯一實例。

 Singleton Pattern

工廠方法模式 ( Factory Method Pattern)

定義一個用於建立物件的介面,子類別決定實例化哪一個類別,工廠模式使一個類別的實例化延遲到其子類別。

通常設計是從工廠方法開始,再向其他模式演化。

 Factory Method Pattern

抽象工廠模式 ( Abstract Factory Pattern )

提供一個建立一系列或相關依賴物件的介面,而無需指定它們具體的類別。

 Abstract Factory Pattern

建造者模式 ( Builder Pattern)

將一個複雜物件的建構與他的表示分離,使得同樣的建構過程可以建立不同的表示。

 Builder Pattern

原形模式 ( Prototype Pattern )

用原形實體指定建立物件的種類,並且透過拷貝這些原型建立新的物件。

 Prototype Pattern

簡單工廠 ( Simple Factory )

不在23種pattern中,有一點點類似Factory Method,與它不同的地方在於,只利用一個實體的工廠,建立所有相關的產品。

 Simple Factory

參考資料
-- 大話設計模式
-- Android源碼設計模式解析與實戰
-- Design Patterns in Object Oriented Programming


上一篇
[ Day 26 ] 做好自己會做的就好啦 ~抽象工廠模式 ( Abstract Factory )
下一篇
[ Day 28 ] 初探設計模式 - 結構型模式
系列文
初探設計模式30

尚未有邦友留言

立即登入留言