JavaScript设计模式之建造者模式

建造者模式可以将一个复杂对象的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。也就是说,如果我们用了建造者模式,那么用户只需要指定需要建造的类型就可以得到她们,而具体建造的过程和细节就不需要知道了。建造者模式实际就是一个指挥者,一个建造者,一个使用指挥者调用具体建造者工作得出结果的客户。

建造者模式主要用于“分步骤构建一个复杂的对象”,在这其中“分步骤”是一个稳定的算法,而复杂对象的各个部分则经常变化。例如,我们需要买一套房子,此时我们只需要找到心仪楼盘的开发商就可以了,然后由开发商和包工头指导建筑工人们盖房子,至于房子是怎么盖起来的,我们不知道,也不需要知道。

建造者模式的作用:

  • 分步创建一个复杂的对象
  • 解耦封装过程和具体创建的组件
  • 无需关心组件如何组装
<script>
        //我们希望得到的房子
       function Fanzi(){
           this.woshi = '';
           this.keting = '';
           this.chufang = '';
       }
       //包工头调用工人进行开工,告诉工人房子的具体需求
       function Baogongtou(){
           this.gaifangzi = function(gongren){
               gongren.jian_woshi();
               gongren.jian_keting();
               gongren.jian_chufang();
           }
       }
      //工人负责盖房子
       function Gongren(){
           this.jian_woshi = function(){
               console.log('卧室建好了');
           }
           this.jian_keting = function(){
               console.log('客厅建好了');
           }
           this.jian_chufang = function(){
               console.log('厨房建好了');
           }
           this.jiaogong = function(){
               var _fangzi = new Fanzi();
               _fangzi.woshi = 'ok';
               _fangzi.keting = 'ok';
               _fangzi.chufang = 'ok';
               return _fangzi
           }
       }
       var gongren = new Gongren();
       var baogongtou = new Baogongtou();
       baogongtou.gaifangzi(gongren);
       var myHouse = gongren.jiaogong();
       console.log(myHouse);
    </script>

建造者模式使用注意事项:

  • 一定要一个稳定的算法进行支持
  • 加工工艺是暴露的

猜你喜欢

转载自www.cnblogs.com/yuyujuan/p/12128990.html
今日推荐