建立型模式 建造者模式

2021-07-13 09:38:18 字數 1617 閱讀 9901

在開發中經常有些複雜的物件,它們擁有一系列成員屬性,這些成員屬性中有些是引用型別的成員物件。而且在這些複雜物件中,通過不同的屬性生成

不同的物件

;(比如:汽車 這個物件,通過不同的發動機製造出來之後,都是汽車 ,但是他的效能,**是不同的)

建造者模式(builder pattern):將乙個複雜的物件的構建過程與它的表示分離,使得同樣的構建過程可以建立不同的表示。

例:(汽車的生成過程和他的成品展現分開來,同樣的流程去生產,可以得到不同型號的汽車) 角色

在這樣的設計模式中,有以下幾個角色:

1、builder:為建立乙個產品物件的各個部件指定抽象介面。

2、concretebuilder:實現builder的介面以構造和裝配該產品的各個部件,定義並明確它所建立的表示,並提供乙個檢索產品的介面。

3、director:構造乙個使用builder介面的物件,指導構建過程。

4、product:表示被構造的複雜物件。concretebuilder建立該產品的內部表示並定義它的裝配過程,包含定義組成部件的類,包括將這些部件裝配成最終產品的介面。

builder:

public inte***ce personbuilder

concretebuilder  1:

public class manbuilder implements personbuilder   

public void buildbody()

public void buildfoot()

public void buildhead()

public person buildperson()

}

concretebuilder  2:

public class womanbuilder implements personbuilder   

public void buildbody()

public void buildfoot()

public void buildhead()

public person buildperson()

}

director:
public class persondirector   

}

product:

public class person   

public void sethead(string head)

public string getbody()

public void setbody(string body)

public string getfoot()

public void setfoot(string foot)

} public class man extends person

} public class woman extends person

}

測試:

public class test  

}

建立型模式 建造者模式

建造者模式 builder pattern 將乙個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。與抽象工廠的區別 在建造者模式裡,有個指導者,由指導者來管理建造者,使用者和指導聯絡,指導者聯絡建造者最後得到產品牌。即建造模式可以強制實現一種分步驟進行的建造過程。建造者模式將複雜...

建立型模式 建造者模式

這段時間剛好要觀摩持久層框架mybatis,恰好看到mybatis 複雜的工廠物件 sqlsessionfactory 的生成類 sqlsessionfactorybuilder 不禁想起gof 23種設計模式中的建造者模式。對照現實中,你去買車時只需知道你要買車的型別,便可到店中購得心滿意足的產品...

建立型模式 建造者模式

builder 抽象建造者,提供建造產品某部分的方法 concretebuilder 具體建造者,具體來建造產品中的某個部分 director 指揮者,實現建造者模式的介面,選擇具體建造者來建立具體的產品 product 產品 抽象建造者builder.php created by phpstorm...