设计模式之创建型工厂模式

Posted 专注前端开发

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式之创建型工厂模式相关的知识,希望对你有一定的参考价值。

通过对产品类的抽象使其创建业务主要负责用于创建多类产品的实例。
创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。
定义一个创建对象的接口,让其子类决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行,最终生成复杂对象。主要解决接口选择的问题。

您需要一辆汽车,可以直接从工厂里提货,而不用去管这辆汽车是怎么做出来的,以及这个汽车里面的具体实现。

var PageFactory = function(type, content) {
  if(this instanceof PageFactory) {
    var s = new this[type](content);
    return s;
  } else {
    // 防止使用者不知道这是一个类,忘了加new操作符创建,导致全局变量污染
    return new PageFactory(type, content);
  }
};
PageFactory.prototype = {
  MyCss: function(content) {
    // ...
  },
  Myjavascript: function(content) {
    // ...
  },
  Myphp: function(content) {
    // ...
  }
};

这样以后如果想添加其他类,只需要在PageFactory的原型里添加就可以了。对于创建很多类的对象,简单工厂模式就不适合了,通过工厂模式可以轻松创建多个类的实例对象,而且避免了使用者与对象类之间的耦合,用户不必关心创建该对象的具体类,只需调用工厂方法即可。

以上是关于设计模式之创建型工厂模式的主要内容,如果未能解决你的问题,请参考以下文章

(转自精通Python设计模式)Python设计模式之创建型模式——1.工厂模式

创建型模式之工厂方法模式实例及代码操作

设计模式之创建型简单工厂模式

一起来学设计模式-----创建型模式之简单工厂

一起来学设计模式-----创建型模式之工厂方法

设计模式之工厂模式-简单工厂(02)