建造者模式(builder)是建立者模式的一種,是一種負責建立物件的模式。
在實際開發中,有的時候我們需要建立的物件十分複雜,有時候需要很多步奏來處理。
建造者模式的任務就是分離和物件子元件的單獨構造(由builder負責)和裝配(由director負責),從而構造出複雜的物件。使用的場景就是構造比較複雜的物件。
由於實現了構造和裝配的解耦。不同的構造器,相同的裝配,也可以做出不同的物件;相同的構造器,不同的構造順序也可以做出不同的物件。也就是實現了構造演算法,裝配演算法的解耦,實現了更好的復用。
在這樣的設計模式中,有以下幾個角色:
1 builder:為建立乙個產品物件的各個部件指定抽象介面。
2 concretebuilder:實現builder的介面以構造和裝配該產品的各個部件,定義並明確它所建立的表示,並 提供乙個檢索產品的介面。
3 director:構造乙個使用builder介面的物件。
4 product:表示被構造的複雜物件。concretebuilder建立該產品的內部表示並定義它的裝配過程,包含定義組成部件的類,包括將這些部件裝配成最終產品的介面。
簡單的例項**如下
//模式角色product 建立的具體物件
public
class
airship
public
void
setorbitalmodule(orbitalmodule orbitalmodule)
public engine getengine()
public
void
setengine(engine engine)
public escapelower getwscapelower()
public
void
setescapelower(escapelower escapelower)
}//模式角色concretebuilder,負責建立物件的各個部分
public
inte***ce
airshipbuilder package pattern;
//模式角色director,負責物件的裝配
public
inte***ce
airshipdirector
//airshipbuilder的實現類
public
class
myairshipbuilder
implements
airshipbuilder
public escapelower createescapelower()
public orbitalmodule createorbitalmodule()
}//airshipdirector的實現
public
class
myairshipdirector
implements
airshipdirector
public airship createairship()
}
如果是比較複雜的物件的建立,這樣以來會把一些邏輯和操作分開來,方便管理和理解。 GOF23 建造者模式
建造者模式定義 建造者模式分離了物件子元件的構造 由builder構造 和裝配 由director裝配 從而可以構造出複雜的物件。適用環境 某個物件構建過程比較複雜。實現物件的建立和裝配解耦,讓客戶端使用者只需要關心自己得到的產品而不是關心產品時怎樣具體產生的 這一點類似工廠模式。一 工廠模式與建造...
GOF23設計模式之建造者模式
什麼是建造者模式,正如其名,也就是用來建造某個物件的一種設計模式。也不是什麼物件都用這個建造者模式,該模式主要用於構建比較複雜的物件,也就是建立起來比較繁瑣的物件。比如上篇抽象工廠中所說的高階手機物件,它由好多種基產品構成,包括處理器 螢幕 攝像頭等等。換句話說就是乙個類中包含許多其他類做為其屬性 ...
GOF23 設計模式
design patterns elements of reusable object oriented software 即後述 設計模式 一書 由 erich gamma richard helm ralph johnson 和 john vlissides 合著 addison wesley,...