简单工厂模式(Simple Factory),又叫静态工厂方法模式(Static Factory Method),由一个工厂决定创建某一种产品对象类的实例。主要用来创建同一类对象。
通过使用工厂,调用者不再需要关注如何创建具体产品对象,只要知道如何使用工厂来获取需要的对象就好了。
由于简单工厂很容易违反高内聚责任分配原则,因此一般只在工厂类负责创建的对象比较少、很简单的情况下应用。
//工厂函数
function xxxFactory(param){
var o = new Object()
o.func = function(){}
switch(param == 0){
……//针对不同参数为产品对象添加不同属性方法
}
return o
}
类:
function BaseCls = function(){}
function SubCls1 = function(){}
function SubCls2 = function(){}
function SubCls3 = function(){}
function ClsFactory(param){
if(param == 'xxx'){
return new SubCls()
}
……
}
缺点:
- 所有实例的创建逻辑都在工厂内创建,违反了高内聚责任分配原则
- 违背开放-关闭原则,一旦添加新产品就必须修改工厂逻辑









网友评论