建造者模式的作用:
将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。建造者模式的角色:
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());新闻热点
疑难解答