1.建造者模式
将一个复杂对象的构建与它的表示分离,使得同样的构建过程,可以创建不同的表示。

2.建造者模式通用类图,如图

设计模式--4建造者模式

3.例子是为了实现,客户启动一辆车时,按照不同的顺序启动车的各个功能。
在建造者模式中有4种角色
(1)Product 产品类
CarModel,通常是实现了模板方法模式

(2) Builder抽象建造者
CarBuilder,规范产品的组建

(3)ConcreteBuilder 具体建造者

(4)Director 导演类
负责安排已有模块的顺序

4.建造者模式
(1)优点:
封装性
易扩展
便于控制细节风险
(2)使用场景
a. 相同的方法,不同的执行顺序,产生不同的事件结果时,可以使用建造者模式
b. 多个部件或零件,都可以装配到一个对象,但是产生的运行结果又不相同时,
c. 产品类非常复杂

 

5.代码实例

(1) 抽象产品类

package com.design.建造者模式;

import java.util.ArrayList;
import java.util.List;

public abstract class CarModel {
    public final static String CAR_START = "start";
    
    public final static String CAR_STOP = "stop";
    
    public final static String CAR_ALARM = "alarm";
    
    
    // 启动序列
    private List<String> sequence = new ArrayList<String>();
    
    protected abstract void start();
    
    protected abstract void alarm();
    
    protected abstract void stop();
    
    final public void setSequence(List<String> sequence){
        this.sequence = sequence;
    }
    
    final public void run(){
        for(int i = 0 ; i < sequence.size() ; i++){
            String actionName = sequence.get(i);
            if(CAR_START.equals(actionName)){
                this.start();
            }else if(CAR_STOP.equals(actionName)){
                this.alarm();
            }else if(CAR_ALARM.endsWith(actionName)){
                this.stop();
            }
        }
    }
}
View Code

相关文章:

  • 2021-11-01
  • 2021-10-04
  • 2021-05-20
  • 2021-05-10
  • 2021-08-05
猜你喜欢
  • 2021-10-10
  • 2022-12-23
  • 2021-06-07
  • 2022-12-23
  • 2021-11-07
  • 2021-12-02
  • 2021-07-25
相关资源
相似解决方案