• 设计模式之Builder


    设计模式总共有23种模式这仅仅是为了一个目的:解耦+解耦+解耦...(高内聚低耦合满足开闭原则

    介绍:

    Builder模式是一步一步创建一个复杂的对象,它允许用户可以只通过指定复杂对象。

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

    模式结构:

    首先我们看一下Builder的代码:

    public interface Builder {
    
      //创建部件A  比如创建汽车车轮
      void buildPartA(); 
      //创建部件B 比如创建汽车方向盘
      void buildPartB(); 
      //创建部件C 比如创建汽车发动机
      void buildPartC(); 
    
      //返回最后组装成品结果 (返回最后装配好的汽车)
      //成品的组装过程不在这里进行,而是转移到下面的Director类中进行.
      //从而实现了解耦过程和部件
      Product getResult();
    
    }

    接下来我们看一下指挥长Director。

    public class Director {
    
      private Builder builder;
    
      public Director( Builder builder ) { 
        this.builder = builder; 
      } 
      // 将部件partA partB partC最后组成复杂对象
      //这里是将车轮 方向盘和发动机组装成汽车的过程
      public void construct() { 
        builder.buildPartA();
        builder.buildPartB();
        builder.buildPartC();
    
      }
    
    }

    然后就是具体Builder

    public class ConcreteBuilder implements Builder {
    
      Part partA, partB, partC; 
      public void buildPartA() {
        //这里是具体如何构建partA的代码
    
      }; 
      public void buildPartB() { 
        //这里是具体如何构建partB的代码
      }; 
       public void buildPartC() { 
        //这里是具体如何构建partB的代码
      }; 
       public Product getResult() { 
        //返回最后组装成品结果
      }; 
    }

    这样一来我们在客户端代码中只需:

    ConcreteBuilder builder = new ConcreteBuilder();
    Director director = new Director(builder); 
    director.construct(); 
    Product product = builder.getResult();

    Builder相关比较简单,如果有复杂的对象要创建时可以适用次模式,你也可以通过Director控制复杂对象的组成元素,例如邮件(包含附件,主题,内容...)

  • 相关阅读:
    MVC是什么意思?
    Paypal 在线支付接口应用从零开始,第2节,[支付API原理及流程]
    人人网
    百度框计算研究
    最近总被黑。然后。。发现了很多知识值得学习。。分享出来。
    首次购房契税下调至1% 首付降为20%
    由“百鸡问题”浅谈程序性能
    10月1日起机动车所有人可自行编排车牌号
    08中国互联网大会23在南京开幕
    MySQL联合创始人向Sun递交辞呈
  • 原文地址:https://www.cnblogs.com/hongguang-kim/p/5739839.html
Copyright © 2020-2023  润新知