首页 > 其他 > 详细

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

时间:2017-09-01 09:17:10      阅读:270      评论:0      收藏:0      [点我收藏+]

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

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

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的原型里添加就可以了。对于创建很多类的对象,简单工厂模式就不适合了,通过工厂模式可以轻松创建多个类的实例对象,而且避免了使用者与对象类之间的耦合,用户不必关心创建该对象的具体类,只需调用工厂方法即可。

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

原文:http://www.cnblogs.com/camille666/p/design_pattern_create_factory.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!