建立型模式 建造者模式

2021-07-03 20:31:44 字數 2030 閱讀 9807

建造者模式(builder pattern)

將乙個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。

與抽象工廠的區別:在建造者模式裡,有個指導者,由指導者來管理建造者,使用者和指導聯絡,指導者聯絡建造者最後得到產品牌。即建造模式可以強制實現一種分步驟進行的建造過程。

建造者模式將複雜的內部建立封裝在內部,對於外部呼叫者來說,只需要傳入建造者和建造工具,對於內部是如何建造成成品的,呼叫者無需關心

建造者模式角色

建造者模式的優點

建造者模式的使用場景

女媧造人例子

package buildermodel;

public class person

public void sethead(string head)

public string getbody()

public void setbody(string body)

public string gethand()

public void sethand(string hand)

public string getfoot()

public void setfoot(string foot)

public string tostring()

}

package buildermodel;

/** * 建造者:女媧

* */

public inte***ce builder

package buildermodel;

/** * 用於製造男人的建造者

* */

public class mainbuilder implements builder

@override

public void buildhead()

@override

public void buildbody()

@override

public void buildhand()

@override

public void buildfoot()

public person getperson()

}

package buildermodel;

/** * 用於製造女人的建造者

* */

public class womanbuilder implements builder

@override

public void buildhead()

@override

public void buildbody()

@override

public void buildhand()

@override

public void buildfoot()

public person getperson()

}

package buildermodel;

/** * 導演者director

* */

public class persondirector else if("woman".equals(buildername))

return builder.getperson();

}}

package buildermodel;

public class testbuildermodel

}

建立型模式 建造者模式

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

建立型模式 建造者模式

在開發中經常有些複雜的物件,它們擁有一系列成員屬性,這些成員屬性中有些是引用型別的成員物件。而且在這些複雜物件中,通過不同的屬性生成 不同的物件 比如 汽車 這個物件,通過不同的發動機製造出來之後,都是汽車 但是他的效能,是不同的 建造者模式 builder pattern 將乙個複雜的物件的構建過...

建立型模式 建造者模式

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