在開發中經常有些複雜的物件,它們擁有一系列成員屬性,這些成員屬性中有些是引用型別的成員物件。而且在這些複雜物件中,通過不同的屬性生成
不同的物件
;(比如:汽車 這個物件,通過不同的發動機製造出來之後,都是汽車 ,但是他的效能,**是不同的)
建造者模式(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...