定义:将一个复杂对象的构建与它的表示分离,使得相同的构建过程可以创建不同的表示。
好处:客户端不必知道具体的创建过程;有利于系统扩展。
代码:
package builder_model;
/**
* @author naivor
* 建造者模式-场景类
*/
public class BuilderModel {
public static void main(String [] args) {
Builder builder=new BuildProductA(); //只要添加其他产品的创建类就可以创建其他产品
Director director=new Director(builder);
director.create();
}
}
/**
*
* @author naivor
* 建造者模式-建造者抽象类
*/
abstract class Builder{
public abstract void buildPart1();
public abstract void buildPart2();
public abstract void buildPart3();
public abstract void buildPart4();
}
/**
*
* @author naivor
* 建造者模式-A产品创建类
*/
class BuildProductA extends Builder{
@Override
public void buildPart1() {
//创建A产品part1的业务
}
@Override
public void buildPart2() {
//创建A产品part2的业务
}
@Override
public void buildPart3() {
//创建A产品part3的业务
}
@Override
public void buildPart4() {
//创建A产品part4的业务
}
}
/**
*
* @author naivor
* 建造者模式-指挥者类
*/
class Director{
private Builder builder;
public Director(Builder builder) {
this.builder=builder;
}
public void create(){
builder.buildPart1();
builder.buildPart2();
builder.buildPart3();
builder.buildPart4();
}
}