zoukankan      html  css  js  c++  java
  • 设计模式之创建型原型模式

    用原型实例指向创建对象的类,使用于创建新的对象的类共享原型对象的属性以及方法。
    用于子类继承父类,为了提高性能,对于每次创建的一些简单的而又有差异化的属性可以放在构造函数中,将一些消耗资源比较大的方法放在基类的原型中,这样就可以避免不必要的消耗,这就是原型模式的雏形。
    原型模式更多的是用在对象的创建上,比如创建一个实例对象的构造函数比较复杂或者耗时比较长,或者通过创建多个对象来实现。此时最好不要用new关键字去复制这些基类,可以通过对这些对象属性或者方法进行复制来实现创建,首先要有一个原型对象的复制方法。

    // 原型对象复制方法
    function prototypeExtend() {
      var F = function() {},
          args = arguments,
          i = 0,
          len = args.length;
      for (; i < len; i++) {
        // 遍历每个模板对象中的属性
        for(var j in args[i]) {
          F.prototype[j] = args[i][j];
        }
      }
      // 返回缓存类实例
      return new F();
    }
    var MyPage = prototypeExtend({
      dataType: 'string',
      js: function() {
        console.log('js的数据类型有' + this.dataType);
      },
      php: function() {
        console.log('php的数据类型有' + this.dataType);
      }
    })
  • 相关阅读:
    微软的十年之变
    如何在易受攻击的SSD上禁用硬件BitLocker加密
    Tech Summit 2018见闻:我们,MVP
    Tech Summit 2018见闻:IT之家读者捕捉铺路集团董事长玄隐
    Windows 10怎么了?
    循环队列
    模拟键盘事件
    模拟鼠标事件
    进程间通信——— 匿名管道
    进程间通信——— LPC
  • 原文地址:https://www.cnblogs.com/camille666/p/design_pattern_create_prototype.html
Copyright © 2011-2022 走看看