您的位置:首页 > 其它

建造者模式(生成器模式)

2017-12-06 09:53 387 查看
维基百科

生成器模式(英: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();
}
}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  设计模式