建造者模式的作用:
將一個復雜的對象的構建與它的表示分離,使得同樣的構建過程可以創建不同的表示。建造者模式的角色:
PRoduct,即產品,表示被建造的對象。該對象一定是個復雜對象,由各個部件組合而成。
Builder,即建造者接口,它的作用為創造產品的各個部件。
ConcreteBuilder,即具體的建造者,用于創建具體的產品部件。
Director,即指揮者,負責通過調用不同的建造者,建造并組裝成不同的產品。
Product,產品。表示人。
public class Person { private String head; private String body; private String foot; // 省略 getter、setter}Builder,建造者接口。這里用抽象類表示,表示創建一個人。
public abstract class PersonBulider { protected Person person = new Person(); abstract void bulidHead(); abstract void bulidBody(); abstract void bulidFoot(); Person builderPerson() { return person; }}ConcreteBuilder,具體的建造者,表示創建一個男人。
public class ManBulider extends PersonBulider { @Override void bulidHead() { person.setHead("男人的頭部"); } @Override void bulidBody() { person.setBody("男人的身體"); } @Override void bulidFoot() { person.setFoot("男人的腳部"); }}Director,指揮者。表示指揮不同的建造者建造不同的產品。
public class PersonDirecter{ public Person AssemblePerson(PersonBulider builder){ builder.bulidHead(); builder.bulidBody(); builder.bulidFoot(); return builder.builderPerson(); }}具體調用如下:
PersonDirecter directer = new PersonDirecter();Person person = directer.AssemblePerson(new ManBuilder());新聞熱點
疑難解答