將一個複雜對象的構造與它的具體構建方法分離,使一樣的構建過程能夠建立不一樣的對象html
建造者模式,顧名思義的就是相似建房子,有一個固定的流程,將生成的對象和建造的方法過程進行了分離。房子都是地板,地基,裝修等操做,不一樣的房子只是具體的構建方法不一樣。可是咱們能夠把具體的實現進行分離,經過按照一個流程進行建造ui
建造者模式的角色定義,在建造者模式中存在如下4個角色:spa
1 builder:爲建立一個產品對象的各個部件指定抽象接口。htm
2 ConcreteBuilder:實現Builder的接口以構造和裝配該產品的各個部件,定義並明確它所建立的表示,並提供一個檢索產品的接口。對象
3 Director:構造一個使用Builder接口的對象。blog
4 Product:表示被構造的複雜對象。ConcreteBuilder建立該產品的內部表示並定義它的裝配過程,包含定義組成部件的類,包括將這些部件裝配成最終產品的接口。接口
建造者模式的思路就是把建立的對象和建立的方法進行了分離,中間經過director來完成建立。ip
適用場景: 1. 結構複雜的對象 2. 種類比較多,構建的方法比較多 3. 流程比較一致產品
http://www.cnblogs.com/liaoweipeng/p/5790603.html方法
參考細節URL:http://www.cnblogs.com/wxisme/p/4520998.html
(1)這個模式適用於構建過程複雜的對象
(2)本質:分離了對象組件的單獨構造(由Builder來負責)和裝配(由Director)過程
(3)好處:因爲實現了構建和裝配的解耦。不一樣的構建器,相同的裝配,也能夠作出不一樣的對象。
相同的構建器,不一樣的裝配順序,也能夠作出不一樣的對象