首页 热点专区 小学知识 中学知识 出国留学 考研考公
您的当前位置:首页正文

<<设计模式之禅(第二版)>>——第十一

2024-12-09 来源:要发发知识网
定义(又名生产器模式):
  • 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以产生不同的表示。
通用类图:
建造者模式通用类图
/*
 *定义产品类,通常为实现模板模式方法的具体执行类
 * */
public class Product {
  public void doSomething() {
    // 独立的业务逻辑
  }
}

public abstract class Builder {
  //设置产品的不同部分,以获得不同的产品 
  public abstract void setPart();
  //建造产品
  public abstract Product buildProduct();
}
/*
 * 创建具体的建造者,有多个产品类就有几个具体的建造者,而且这些多个产品具有相同的接口或者抽象类
 * */
public class ConcreteProductBuilder extends Builder {
  Product product = new Product();

  @Override
  public void setPart() {
    // 特有的内部逻辑处理

  }

  @Override
  public Product buildProduct() {
    // TODO Auto-generated method stub
    return product;
  }

}


/*
 * 创建导演类
 * */
public class Director {
  Builder productBuilder = new ConcreteProductBuilder();
  //构建不同的产品
  public Product getProduct(){
    
    productBuilder.setPart();
    return productBuilder.buildProduct();
  }
}
public class Client {
  public static void main(String[] args) {
    
    Director director = new Director();
    director.getProduct();
  }
}
建造者模式的优点:
  • 具有良好的封装性
  • 建造者独立,容易拓展,具体的建造者是相互独立的,有利于系统的拓展
  • 便于控制细节风险,具体的建造者相互独立,可以对建造的过程逐步细化,而不对其他的模块产生影响
常见的使用场景:
  • 多个部件或零件,都可以装配到一个对象中,但是运行的结果又不相同时
  • 产品类较复杂,或者产品类中的调用顺序不同产生不同的效能
显示全文