● 分離了物件子元件的單獨構造(由builder來負責)和裝配(由director來負責)。從而可以構造出複雜的物件。這個模式適用於:某個物件的構建過程複雜的情況下使用。
● 由於實現了構建和裝配的解耦。不同的構建器,相同的裝配,也可以做出不同的物件;相同的構建器,不同的裝配順序也可以做出不同的物件。
飛船類,由軌道艙類,引擎類,逃逸艙類組成。如果不使用建造者模式,我們的客戶端不僅需要例項化飛船類,還要例項化軌道艙類,引擎類,逃逸艙類,並且將它們的物件set到飛船物件裡,做了非常多的操作。
package builder;
public class airship
public void setorbitalmodule(orbitalmodule orbitalmodule)
public engine getengine()
public void setengine(engine engine)
public escapetower getescapetower()
public void setescapetower(escapetower escapetower) }
//軌道艙類
class orbitalmodule
public string getname()
public void setname(string name)
}//引擎類
class engine
public string getname()
public void setname(string name) }
//逃逸艙類
class escapetower
public string getname()
public void setname(string name)
}
構建器介面以及實現類
//構建器介面
public inte***ce airshipbuilder
//實現類
public class icyairshipbuilder implements airshipbuilder
@override
public orbitalmodule builderorbitalmodule()
@override
public escapetower builderescapetower()
}
裝配器介面以及實現類public inte***ce airshipdirector
public class icyairshipdirector implements airshipdirector
@override
public airship directairship()
}
測試類,測試類只需要選擇構建器和裝配器,就能得到飛船這個複雜的物件
GOF23 建造者模式
建造者模式定義 建造者模式分離了物件子元件的構造 由builder構造 和裝配 由director裝配 從而可以構造出複雜的物件。適用環境 某個物件構建過程比較複雜。實現物件的建立和裝配解耦,讓客戶端使用者只需要關心自己得到的產品而不是關心產品時怎樣具體產生的 這一點類似工廠模式。一 工廠模式與建造...
設計模式GOF23 建造者模式
建造者模式 builder 是建立者模式的一種,是一種負責建立物件的模式。在實際開發中,有的時候我們需要建立的物件十分複雜,有時候需要很多步奏來處理。建造者模式的任務就是分離和物件子元件的單獨構造 由builder負責 和裝配 由director負責 從而構造出複雜的物件。使用的場景就是構造比較複雜...
GOF23設計模式之建造者模式
什麼是建造者模式,正如其名,也就是用來建造某個物件的一種設計模式。也不是什麼物件都用這個建造者模式,該模式主要用於構建比較複雜的物件,也就是建立起來比較繁瑣的物件。比如上篇抽象工廠中所說的高階手機物件,它由好多種基產品構成,包括處理器 螢幕 攝像頭等等。換句話說就是乙個類中包含許多其他類做為其屬性 ...