23种设计模式——(5)建造者模式

定义

建造者模式也叫做生成器模式:将一个复杂对象的构建与它的表示分离,使得同样的构造过程可以创建不同表示

建造者模式通用类图

这里写图片描述

在建造者模式中,有如下4个角色


  • Product产品类

    
    # 通常是实现了模仿方法模式,也就是模版方法和基本方法。
    
  • Builder抽象建造者

    
    # 规范产品的组件,一般是由子类实现
    
    
  • ConcreteBuilder具体建造者

    
    # 实现抽象类定义的所有方法,并返回一个组件好的对象。
    
    
  • Director导演类

    
    # 安排已有的模版顺序,然后告诉Builder开始建造
    
    
    
    # 导演类起到封装作用,避免高层模块深入到建造者内部的实现类。(当建造者模式比较庞大时,导演类可以有多个)
    
public class Product {
    public void doSomething() {
        // 独立处理业务
    }
}

----------------------
public abstract class Builder{
    //设置产品的不同部分,以获得不同的产品
    public abstract void setPart();
    //建造产品 
    public abstract Product builderProduct();
}
-------------------------------------------------------
    public class ConcreteProcuct extends Builder {
private Product product = new Product();
    @Override
    public void setPart() {
        // 设置产品零件

    }

    @Override
    public Product builderProduct() {
        // 组建一个产品
        return product;
    }

}
--------------------------------------------------
    public class Director {

    private Builder builder = new ConcreteProcuct();

    //建造不同的产品
    public Product getProduct(){

        return builder.builderProduct();
    }
}

建造者模式应用

建造者模式的优点
# 1 封装性
# 2 建造者独立,容易扩展
# 3 便于控制细节风险
建造者模式的使用场景
# 1 相同的方法,不同的执行顺序,产生不同的事件结果

# 2 多个部件或零件,都可以转配到一个对象中,但是产生的运行结果又不相同时。

# 3 产品类非常复杂,或者产品类中的调用顺序不同产生了不同的效果。

建造者模式关注的是零件和装配工艺(顺序),这是它与工厂方法模式最大的不同

猜你喜欢

转载自blog.csdn.net/u012848709/article/details/81430134