Javascript设计模式——建造者模式

作者: 有梦想的咸鱼前端 | 来源:发表于2019-10-12 14:16 被阅读0次

建造者模式是相对比较简单的一种设计模式,属于创建型模式的一种;

定义:
将一个复杂的对象分解成多个简单的对象来进行构建,将复杂的构建层与表现层分离,使相同的构建过程可以创建不同的表示模式;
优点:
1.建造者模式的封装性比较好,创建对象和构建过程解耦;
2.建造者模式很容易扩展,当我们需要扩展的时候,通过一个新的建造者就可以实现;
模式作用:
1.分步创建一个复杂的对象
2.解耦封装过程和具体创建组件    
3.无需关心组件如何组装
注意事项:
1.一定要一个稳定的算法支持  
2.加工工艺是暴露的,也就是说土豪可以随时去看房子建的怎么样了
白话解释:
  某土豪想建一个房子,某土豪只需要找包工头,包工头再去找施工团队来建造房子,而不需要土豪自己去一个个的找工人搭建施工团队开始施工;包工头知道土豪的需求,也知道哪里能找到工人搭建施工团队,工人可以直接干活,中间节省了土豪直接和工人沟通的成本;土豪不需要知道房子该怎么建,土豪只需要最后能验收到房就行;

在写代码之前我们先分析一下:
1.产出的东西是房子
2.包工头调用工人进行开工 而且他要很清楚工人们具体的某一个大项
3.工人是盖房子的 工人可以建卧室 建客厅 建厨房
4.包工头只是一个接口,他只对外说盖房子,他不用做事情;

  function Fangzi(){
      this.woshi = "";
      this.keting = "";
      this.chufang = "";
  }
  
  function Baogongtou(){
      this.jianfangzi = 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.wangong = function(){
          var fangzi = new Fangzi();
          fangzi.woshi = "ok";
          fangzi.keting = "ok";
          fangzi.chufang = "ok";
          return fangzi;
      }
  }
  let gongren = new Gongren();
  let baogongtou = new Baogongtou();
  //卧室建好了!
  //客厅建好了!
  //厨房建好了!
  baogongtou.jianfangzi(gongren);
  var my_fangzi = gongren.wangong();
/*
  Fangzi={
         chufang: "ok"
         keting: "ok"
         woshi: "ok"
         }
*/
  console.log(my_fangzi);  

上述代码中我们可以看到,Gongren()里面是具体的施工过程,也就是具体做的事情,Fangzi()里面一开始都是空的,没有客厅、厨房、卧室;Baogongtou()里面只是对外宣传可以建房子,然后传入工人方法调用工人进行施工;工人方法执行完了也就是施工完了,然后就是交房;一个新的方法里面实例化Fangzi()的方法,在新方法里面重新赋值即可;

相关文章

  • javascript设计模式——建造者模式

    特点:工厂模式的特点是创建的结果都是一个完整的个体,我们对创建过程不得而知,我们只了解得到的创建结果对象。而建造者...

  • JavaScript设计模式——建造者模式

    写在前面 早该更新文章了,然而最近深陷项(囹)目(圄)。为了适配万恶的IE8,不得不使用陈旧的框架Ext,从未接触...

  • Javascript设计模式——建造者模式

    建造者模式是相对比较简单的一种设计模式,属于创建型模式的一种; 定义:将一个复杂的对象分解成多个简单的对象来进行构...

  • Retrofit

    Retrofit设计模式 动态代理,装饰模式,建造者模式,抽象工厂模式,适配器模式 建造者模式创建Retrofit...

  • Android中涉及的模式

    我的Java设计模式-建造者模式 我的Java设计模式-观察者模式 重学设计模式之单例模式

  • 设计模式之建造者模式

    设计模式之建造者模式 Intro 简介 建造者模式: 建造者模式隐藏了复杂对象的创建过程,它把复杂对象的创建过程加...

  • 设计模式 - 目录

    设计模式01 - 单例模式 设计模式02 - 工厂模式 设计模式03 - 建造者模式 设计模式04 - 适配器模式...

  • 设计模式之建造者模式

    设计模式之建造者模式 1. 模式定义 建造者模式又可以成为生成器模式,它属于对象创建型模式。建造者模式将一个复杂对...

  • java设计模式--建造者模式

    java设计模式--建造者模式 建造者模式定义 建造者模式:是将复杂对象的构建与表示进行分离,使同样的构建过程会有...

  • 【Java设计模式】--建造者模式

    建造者模式(Bulider模式) 一、什么是建造者模式 建造者模式是设计模式的一种,将一个复杂对象的构建与它的表示...

网友评论

    本文标题:Javascript设计模式——建造者模式

    本文链接:https://www.haomeiwen.com/subject/pluqmctx.html