php专区

 首页 > php专区 > PHP进阶 > 设计模式 > PHP多例模式探讨

PHP多例模式探讨

分享到:
【字体:
导读:
         摘要:大家都知道PHP单例模式,却很少说PHP多例模式,下面是在wikipedia上看到的PHP多例模式的例子...

PHP多例模式探讨
学习java就知道设计模式中有多例模式:

1、多例类可以有多个实例
2、多例类必须能够自我创建并管理自己的实例,并向外界提供自己的实例。

大家都知道PHP单例模式,却很少说PHP多例模式,下面是在wikipedia上看到的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 $stringn";
    }
}
  class GoodBye extends Multiton { public function __construct($string = 'my', $string2 = 'darling') {
        echo "Goodbye $string $string2n";
    }
}
 
$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  ?>
PHP多例模式探讨
分享到:
简单工厂模式,工厂方法模式,原型模式,...
简单工厂模式,工厂方法模式,原型模式,抽象工厂方法模式之间的区别种种工厂模式要解决的问题致力于解决一个基本问题:构造一个类的时候,必须知道其具体的类名。这是一种耦合。 1.简单工厂模式:通过想工厂方法传递一个参数来确定生成那个具体的类。这个参数通常是一个字符串。将对类名的依赖转换成对字符串内...
装饰模式(Decorator Pattern) 详解
装饰模式(Decorator Pattern) 详解 子类复子类,子类何其多     假如我们需要为游戏中开发一种坦克,除了各种不同型号的坦克外,我们还希望在不同场合中为其增加以下一种或多种功能;比如红外线夜视功能,比如水陆两栖功能,比如卫星定位功能等等。按类继承的作法如下:    1  //抽象坦克2  publi...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……