-
PHP多例模式
添加时间:2013-6-18 点击量:进修java就知道设计模式中有多例模式:
1、多例类可以有多个实例
2、多例类必须可以或许自我创建并经管本身的实例,并向外界供给本身的实例。大师都知道PHP单例模式,却很少说PHP多例模式,下面是在wikipedia上看到的PHP多例模式的例子:
<?php
abstract class Multiton {
/ by http://www.phpddt.com /
private static ¥instances = array();
public static function getInstance() {
¥key = get_called_class() . serialize(func_get_args());
if (!isset(self::¥instances[¥key])) {
¥rc = new ReflectionClass(get_called_class());
self::¥instances[¥key] = ¥rc->newInstanceArgs(func_get_args());
}
return self::¥instances[¥key];
}
}
class Hello extends Multiton {
public function __construct(¥string = World) {
echo Hello ¥string\n;
}
}
class GoodBye extends Multiton {
public function __construct(¥string = my, ¥string2 = darling) {
echo Goodbye ¥string ¥string2\n;
}
}
¥a = Hello::getInstance(World);
¥b = Hello::getInstance(bob);
// ¥a !== ¥b
¥c = Hello::getInstance(World);
// ¥a === ¥c
¥d = GoodBye::getInstance();
¥e = GoodBye::getInstance();
// ¥d === ¥e
¥f = GoodBye::getInstance(your);
// ¥d !== ¥f
?>
文艺不是炫耀,不是花哨空洞的文字堆砌,不是一张又一张的逆光照片,不是将旅行的意义转化为名牌包和明信片的物质展示;很多时候它甚至完全不美——它嘶吼、扭曲,它会痛苦地抽搐,它常常无言地沉默。——艾小柯《文艺是一种信仰》