设计模式-JS

  • 单例

    • 概述:保证一个系统中一个类只有一个实例,即一个类只有一个对象实例

    • const Single = (function(){
        let instance;
        const init = function(n, a) {
          var name = n;
          var age = a;
           return {
             // 定义公共方法
             getInfo: function(){
               console.log('name:',name, 'age:', age);
             }
           }
         }
         return {
          // 获取实例
           getInstance: function(n, a) {
             if (!instance) {
                instance = init(n, a);
              }
              return instance;
           }
         }
      }());
      const o1 = Single.getInstance('a', 10);
      const o2 = Single.getInstance('b', 20);
      // 对于单例模式只实例化一次,当再次实例化的时候this.instance已经存在直接返回,
      o1.getInfo(); // name: a age: 10
      o2.getInfo(); // name: a age: 10
      o1 === o2 // true
  • 工厂模式

    • 简单工厂模式概述:常用的实例化对象模式,用工厂方法代替new 操作

      const Factor = function (name, color) {
          const obj = new Object();
          obj.name = name;
          obj.color = color;
          obj.getInfo = function () {
              console.log('名称:', obj.name, '颜色:', obj.color)
          }
          return obj;
      }
      var cat1 = new Factor('小黑', 'black');
      cat1.getInfo();//  名称: 小黑 颜色: black
    • 复杂工厂模式概述:升级版的简单工厂模式,对多个类进行抽象化。。。 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值