將乙個複雜物件的構建與他的表示分離,使同樣的構建過程可以建立不同的表示。
具體產品類
public class product
public void show()
}}
建造者介面
public inte***ce builder
建造者介面實現
public class concretebuilder implements builder
@override
public void buildpartb()
@override
public product getresult()
}public class concretebuilder2 implements builder
@override
public void buildpartb()
@override
public product getresult()
}
指揮者類
public class director
}
主方法
public class mian
}
建造者模式的結構中引入了乙個指揮者類director,該類的作用主要有兩個:
一、它隔離客戶與生產過程;
二、它負責控制產品的生成過程。指揮者針對抽象建造者程式設計,客戶端只需要知道具體建造者的型別,無須關心產品物件的具體組裝過程,即可通過指揮者類呼叫建造者的相關方法,返回乙個完整的產品物件。
建造者模式與抽象工廠模式的比較:
與抽象工廠模式相比, 建造者模式返回乙個組裝好的完整產品 ,而抽象工廠模式返回一系列相關的產品,這些產品位於不同的產品等級結構,構成了乙個產品族。
在抽象工廠模式中,客戶端例項化工廠類,然後呼叫工廠方法獲取所需產品物件,而在建造者模式中,客戶端可以不直接呼叫建造者的相關方法,而是通過指揮者類來指導如何生成物件,包括物件的組裝過程和建造步驟,它側重於一步步構造乙個複雜物件,返回乙個完整的物件。
如果將抽象工廠模式看成汽車配件生產工廠 ,生產乙個產品族的產品,那麼建造者模式就是乙個汽車組裝工廠 ,通過對部件的組裝可以返回一輛完整的汽車。
大話設計模式筆記(十) 建造者模式
畫乙個小人,有頭 身體 兩手 兩腳就可以了。人類 created by callmedevil on 2019 7 21.public class person public void drawbody public void drawhand public void drawleg public ...
大話設計模式學習(十) 建造者模式
建造者模式 將乙個複雜物件的構造與它的表示分離,使得同樣的構建過程可以建立不同的表示。建造者模式主要用於建立一些複雜的物件,這些物件內部構建之間的建造順序通常是穩定的,但物件內部的建構通常面臨著複雜的物件,它的好處在於使得建造 和表示 分離,由於建造者隱藏了該產品是如何組裝的,所以若需要改變乙個產品...
讀書筆記 大話設計模式
大話設計模式 的確寫的很不錯。把晦澀解懂的設計模式,講的通俗易懂。邊讀邊用evernote做筆記,把印象深刻的整理了一下。先補習一下uml的圖示法 繼承,介面,組合,依賴,關聯 策略模式 strategy 定義一系列演算法,所有演算法完成的都是相同的工作,只是實現不同。減少演算法與使用類之間的藕合。...