建造模式:將乙個複雜物件的構建與他的表示相分離,使得同樣的構建過程可以建立不同的表示。
當流程演算法可以固定幾個步驟,步驟的演算法步驟執行順序固定,且製造的產品可以唯一確定,這時使用建立者模式。
對演算法步驟進行封裝(director),對流程演算法步驟有統一的介面builder,演算法具體的每個步驟變化時,可以通過實現演算法步驟藉口類進行擴充套件或適配(concretebuilder1,concretebuilder2…),director不關心流程步驟,只負責流程演算法執行順序,從而達到了解耦,依賴倒置的思想。
流程演算法抽象類,負責定義流程演算法具體每個步驟的函式;
concretebuilder:
實現流程每個步驟的具體實現類,必須遵循流程演算法抽象介面(實現builder抽象類);
product:
按照一定的順序執行完流程演算法各個步驟後,在流程演算法抽象類中將會提供乙個getresult()函式返回製造的產品就為product.
director:
用來確定流程演算法步驟,並返回製造的產品。
director特點:
結合builder從而實現了解耦和依賴倒置;
對演算法步驟進行封裝;
director不關心流程步驟,只負責流程演算法執行順序,職責單一.
builder特點:
1. 負責演算法流程具體步驟的定義,具有總結能力,具有規範(模範)意義;
2. 不負責具體實現,從而結合director達到解耦,依賴倒置。
這裡我必須要附上,它的呼叫要注意,例項化的concretebuilder時client來負責的,這也正體現了director解耦的實現,director只接收乙個抽象的builder物件。
1看起來很抽象工廠優點相似,不錯,他們有相似指出就是都有類的例項化,但不同的的是,他們負責的重點不一樣:static
void main(string
args)
2
抽象工廠負責重點:注重類的建立,類的例項化是交給了工廠方法例項化, 它負責了類的例項化------子類的建立封裝在工廠方法中;
建立者模式負責重點:注重流程演算法的操作步驟(director),而builder的子類(concretebuilder)的例項化時由client來實現的。
從這些方面來說我們可以說他們共同擁有建立型模式相似外,還有很大的區別,而且抽象工廠,建立的產品是多個系列的產品,而建立者確實乙個確定的產品物件。
參考文件:《
希望牛人們,給點指點和建議!
建立者模式 builder
package mode.bulider 首先是汽車,組成零件有 玻璃 輪胎 發動機 他們都是抽象的概念,所以用抽象類來建立 public class car package mode.bulider 抽象的玻璃 public abstract class glass 下面是兩個具體的玻璃類 pac...
設計模式 建立者模式
建造者模式屬於建立型模式 基本原理 有底到高一層層的建立疊加,上層是依靠底層的建立。就如細胞組 體不同的組織,組織組成了不同的人。主要流程 1.建立最基本的單元 2.建立所要建造的物品,使用基本單元建立該物品的元素 3.使用物品建立完整的結構 include include using namesp...
設計模式 建立者模式
建立者模式又叫建造者模式,是將乙個複雜的物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。建立者模式隱藏了複雜物件的建立過程,它把複雜物件的建立過程加以抽象,通過子類繼承或者過載的方式,動態的建立具有復合屬性的物件。建立者模式通常包括如下幾種角色 1.建造者角色 builder 對複雜...