【JS设计模式】工厂方法模式

工厂方法模式(Factory method pattern) 是一种实现“工厂”概念的面上对象设计模式。实质是定义一个创建对象的接口,但是让实现这个接口的类来决定实例化哪个类。工厂方法让类的实例化推迟到子类中进行。
 
function extend(sup, sub) {
        var F = function() {
        };
        F.prototype = sup.prototype;
        sub.prototype = new F();
        sub.sub = sub.prototype;

        if(sub.prototype.constructor == sup.prototype.constructor) {
          sub.prototype.constructor = sub;
        }
      }
// 这也是原继承
      function supFun() {
      }

      supFun.prototype = {
        constructor : supFun,
        sellBike : function() {
          this.createBike();
        },
        createBike : function() {
          throw new Error("supFun");
        }
      }

      function MacBike() {
      }

      extend(supFun, MacBike);

      MacBike.prototype.createBike = function() {
        alert("要出新的自行车了");
      }
     
      var macFn = new MacBike();
      macFn.sellBike();

你可能感兴趣的:(【JS设计模式】工厂方法模式)