建造者模式
建造者模式(Builder Pattern) 又叫生成器模式,是一种对象构建模式。它可以 将复杂对象的建造过程抽象出来(抽象类别),使这个抽象过程的不同实现方 法可以构造出不同表现(属性)的对象。
建造者模式 是一步一步创建一个复杂的对象,它允许用户只通过指定复杂对象 的类型和内容就可以构建它们,用户不需要知道内部的具体构建细节。
- Product(产品角色): 一个具体的产品对象。
- Builder(抽象建造者): 创建一个Product对象的各个部件指定的 接口/抽象类。
- ConcreteBuilder(具体建造者): 实现接口,构建和装配各个部件。
- Director(指挥者): 构建一个使用Builder接口的对象。它主要是用于创建一个 复杂的对象。它主要有两个作用,一是:隔离了客户与对象的生产过程,二是: 负责控制产品对象的生产过程。
/**
* 建造者抽象接口
*/
public interface Builder {
void buildName1();
void buildName2();
void buildName3();
void buildName4();
}
/**
* 建造任务实际承担者
*/
public class ConcreteBuilder implements Builder{
@Override
public void buildName1() {
System.out.println("name1部分建造完成");
}
@Override
public void buildName2() {
System.out.println("name2部分建造完成");
}
@Override
public void buildName3() {
System.out.println("name3部分建造完成");
}
@Override
public void buildName4() {
System.out.println("name4部分建造完成");
}
}
/**
* 建造指挥者
*/
public class Director {
private Builder builder;
public Director(Builder builder) {
this.builder = builder;
}
public Product buildOK() {
this.builder.buildName1();
this.builder.buildName2();
this.builder.buildName3();
this.builder.buildName4();
System.out.println("建造完成");
return new Product();
}
}
/**
* 建造目标产品
*/
public class Product {
private String name1;
private String name2;
private String name3;
private String name4;
public String getName1() {
return name1;
}
public void setName1(String name1) {
this.name1 = name1;
}
public String getName2() {
return name2;
}
public void setName2(String name2) {
this.name2 = name2;
}
public String getName3() {
return name3;
}
public void setName3(String name3) {
this.name3 = name3;
}
public String getName4() {
return name4;
}
public void setName4(String name4) {
this.name4 = name4;
}
}