维基百科
生成器模式(英:Builder Pattern)是一种设计模式,又名:建造模式,是一种对象构建模式。它可以将复杂对象的建造过程抽象出来(抽象类别),使这个抽象过程的不同实现方法可以构造出不同表现(属性)的对象。
抽象创建接口
public interface PersonBuilder {
void buildHead();
void buildBody();
void buildArmLeft();
void buildArmRight();
void buildLegLeft();
void buildLegRight();
}
具体实现1
public class PersonThinBuilder implements PersonBuilder{
@Override
public void buildHead() {
System.out.println("瘦人头");
}
@Override
public void buildBody() {
System.out.println("瘦人身体");
}
@Override
public void buildArmLeft() {
System.out.println("瘦人左胳膊");
}
@Override
public void buildArmRight() {
System.out.println("瘦人右胳膊");
}
@Override
public void buildLegLeft() {
System.out.println("瘦人左腿");
}
@Override
public void buildLegRight() {
System.out.println("瘦人右腿");
}
}
具体实现2
public class PersonSideBuilder implements PersonBuilder{
@Override
public void buildHead() {
System.out.println("胖人头");
}
@Override
public void buildBody() {
System.out.println("胖人身体");
}
@Override
public void buildArmLeft() {
System.out.println("胖人左胳膊");
}
@Override
public void buildArmRight() {
System.out.println("胖人右胳膊");
}
@Override
public void buildLegLeft() {
System.out.println("胖人左腿");
}
@Override
public void buildLegRight() {
System.out.println("胖人右腿");
}
}
创建者
public class PersonDirector {
private PersonBuilder personBuilder; //持有创建抽象接口
public PersonDirector(PersonBuilder personBuilder) {
this.personBuilder = personBuilder;
}
public void CreatePerson() { //对客户端隐藏具体的实现
personBuilder.buildHead();
personBuilder.buildBody();
personBuilder.buildArmLeft();
personBuilder.buildArmRight();
personBuilder.buildLegLeft();
personBuilder.buildLegRight();
}
}
客户端
public class Main {
public static void main(String[] args) {
//只需要告诉服务端要创建什么类型的人,不需要知道如何创建
PersonDirector personDirector = new PersonDirector(new PersonThinBuilder());
personDirector.CreatePerson();
}
}