设计模式之工厂模式

工厂模式

工厂模式是我们最常用的实例化对象模式了,是用工厂方法代替new操作的一种模式。著名的Jive论坛 ,就大量使用了工厂模式,工厂模式在Java程序系统可以说是随处可见。因为工厂模式就相当于创建实例对象的new,我们经常要根据类Class生成实例对象,如var a=new A() 工厂模式也是用来创建实例对象的,所以以后new时就要多个心眼,是否可以考虑使用工厂模式,虽然这样做,可能多做一些工作,但会给你系统带来更大的可扩展性和尽量少的修改量

模式作用

  1. 对象的构建十分复杂
  2. 需要依赖具体的环境创建不同实例
  3. 处理大量具有相同属性的小对象

注意事项

  1. 不能滥用工厂,有时候仅仅是给代码增加复杂度

例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
//工厂应该有厂长,来决定运行哪条生产线
// 消费者->子类
var gongchang={};//定义工厂
//工厂生产衣服方法
gongchang.chanyifu=function(argument){
this.gongren=50; //工人属数量
this.shengchangxiaolv=2;//生产效率
console.log("我们有"+this.gongren+"个工人");
console.log("生产了"+this.gongren*this.shengchangxiaolv+"件衣服")
}
//工厂生产鞋子方法
gongchang.chanxie=function(){
console.log("产鞋子");
}
gongchang.yunshu=function(){
console.log("运输");
}
gongchang.changzhang=function(para){
return new gongchang[para]();
//构造函数模式 单例模式
}
var me=gongchang.changzhang('chanyifu'); //我们有50个工人 生产了100件衣服