建造模式

建造模式:就是把复杂的创建过程封装在内部,对外部来说只需要传入建造者和建造工具,不需要关心内部的具体实现。

 

示例:

      假如我们要生产一台笔记本,笔记本由A、B、C三部分组成,这时我们可以A\B\C三部分的生产看成为一个建造工具,然后再由一个工人(建造者)将三部分组装起来。

第一部分:BuildTool(建造工具)接口

public interface BuildTool(){
    //A部件
    public void buildA();

   //部件B
   public void buildB();

   //部件C
   public void buildC();

   //得到完整的产品
   Product getProduct();
}

 建造工具接口的实现:

public class Creater implements BuildTool{
     Part A,B,C;
     public void buildA(){
       //实现
     }
     public void buildB(){
       //实现
     }
     public void buildC(){
       //实现
     }

     public Product getProduct(){
       //实现
       return product;
     }
}

 第二部分:Builder(建造者)

public class Builder(){

  BuildTool tool;
  //传入建造工具
  public Builder(BuildTool tool){
       this.tool=tool; 
  }

  //进行建造
  public  void  construct(){
       tool.buildA();
       tool.buildB();
       tool.buildC();
  }
}

   调用:

BulidTool  tool=new Creater();//建造工具

Builder builder=new Builder(tool);//建造者

builder.construct();//开始组装

Product p=tool.getProduct();//得到产品

 应用场景:当要构建一个复杂的对象。 一个类的各个组成部分的具体实现类或者算法经常面临着变化,但是将他们组合在一起的算法却相对稳定。提供一种封装机制 将稳定的组合算法于易变的各个组成部分隔离开来

你可能感兴趣的:(设计模式)