function createObj(name) {
var obj = {
name:name,
showName:function(){
console.log(this.name)
}
}
return obj;
}
var obj1 = createObj(‘lee_1‘);
var obj2 = createObj(‘lee_2‘);
obj1.showName()
obj2.showName()
b. 输出:
lee_1
lee_2
<?php
class man{
public function say(){
echo ‘我是男人‘.PHP_EOL;
}
}
class women{
public function say(){
echo ‘我是女人‘.PHP_EOL;
}
}
class factory{
static function createMan(){
return new man();
}
static function createWomen(){
return new women();
}
}
$factory = new factory();
$man = $factory->createMan();
$man->say();
$woman = $factory->createWomen();
$woman->say();
b. 输出:
我是男人
我是女人
1、因为JS中没有类的概念,工厂函数是为了解决面向对象中的封装性而设计的
2、PHP本身就是面向对象的语言,工厂函数只是为了防止new关键字使用过多,所以在PHP当中的工厂函数这个模式设计的很鸡肋,一般不用!
原文地址:http://blog.51cto.com/12173069/2088226