zoukankan      html  css  js  c++  java
  • 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>

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

    • 一定要一个稳定的算法进行支持
    • 加工工艺是暴露的
  • 相关阅读:
    Asp.Net基础 9.Web开发原则
    JavaScript – 1.事件 + 2.变量 + 3.判断变量初始化 + 4.函数的声明 + 5.匿名函数
    DOM – 3.window对象的属性
    Dom – 1.window对象事件 + 2.body、document对象的事件
    faint
    开会
    it's over
    so funny
    no topic
    震惊:有良医生揭无良献血内幕!
  • 原文地址:https://www.cnblogs.com/yuyujuan/p/12128990.html
Copyright © 2011-2022 走看看