作者MOONRAKER (㊣康少校是死到哪里去了)
看板PHP
标题[讨论] 神秘的factory
时间Tue May 21 18:54:22 2013
我在某个classlib里面看到一个神秘的class
化简之後是这样的
class X {
public $prop1;
public $prop2;
public static function factory($_prop1, $_prop2) {
$Xinst =
new X();
$Xinst->prop1 = $_prop1;
$Xinst->prop2 = $_prop2;
// ...
return $Xinst;
}
public function method1() {
// ...
}
// ...
}
这个factory不是独立的class,也只能创造 class X 的物件
到底跟constructor有什麽不一样…
是把constructor改个名字叫factory比较帅吗…
--
从前有个马铃薯王国 有个高贵伟大的国王
有的人尊敬他 有的人畏惧他 但有个人敢看不起他不只是一条龙
嘿呵 快出动 去征服 去摆平 嘿呵 快出征 去征服那条龙
嘿呵 快出动
(宰了它!轰了它!)嘿呵 快出征 去征服那条龙
:■ Potatoes and Dragons (C)Alphanim France 2004-05 :.
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.163.12.174
1F:→ ken1325:design pattern 05/21 19:10
2F:→ ken1325:不是里面那个叫工厂模式的吗? 好像是吧...? 05/21 19:11
3F:→ MOONRAKER:工厂模式要跟工厂要制造的class分开 05/21 19:12
4F:→ MOONRAKER:产品专心定义产品,工厂专门生产 05/21 19:13
6F:→ MOONRAKER:可是他混在一起,跟constructor做的事也没差别 05/21 19:14
7F:→ ken1325:嗯...好像真的没差别QQ 05/21 19:20
8F:推 PsMonkey:要作 singleton?(我不确定 PHP 可不可以) 05/21 20:32
9F:→ johnny1972:猴大说对了,这是用PHP模拟singleton 05/21 21:35
10F:→ johnny1972:通常搭配会把__construct,__clone,__wakeup设成private 05/21 21:37
11F:→ johnny1972:另外还可以利用php对sibling method的特性做出有趣东西 05/21 21:39
12F:→ MOONRAKER:可是没看到他有__construct, __clone, __wakeup 05/21 22:15
13F:→ MOONRAKER:这是phpqrcode的class QRencode,在/qrencode.php内 05/21 22:21
14F:→ tails32100:看过原始码了,觉得像是「未来要做多例模式」的感觉 05/21 22:40
15F:→ MOONRAKER:那不就是工厂还没盖好只有个空厂房的意思 :| 05/22 08:52
16F:→ tails32100:这是个没有仓库的生产线Orz 05/22 09:40