建造者模式
将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创造不同的表示。
使用场景:
1、相同的方法,不同的执行顺序,产生不同的事件结果,可以采用建造者模式;
2、多个部件或零件,都可以装配到一个对象中,但是产生的运行结果又不相同时,可以使用该模式;
3、产品类非常复杂,或者产品类中的调用顺序不同产生了不同的效能,使用该模式非常合适。
//产品类
public class BuildModeProduct {
public void doSomething(){
}
}
//抽象建造者
public abstract class AbstractBuilder {
public abstract void setPart();
public abstract BuildModeProduct buildProduct();
}
//具体建造者
private BuildModeProduct product = new BuildModeProduct();
@Override
public void setPart() {
//产品内的处理逻辑
}
@Override
public BuildModeProduct buildProduct() {
return product;
}
//导演类
public class Director {
private AbstractBuilder builder = new ConcreteBuilder();
public BuildModeProduct getProduct(){
builder.setPart();
return builder.buildProduct();
}
}