Java を学習すると、デザイン パターンには複数のインスタンス パターンがあることがわかります:
1. マルチインスタンス クラスは複数のインスタンスを持つことができます。
2. マルチインスタンス クラスは、独自のインスタンスを作成および管理でき、独自のインスタンスを外部に提供できる必要があります。
PHP シングルトン モードについては誰もが知っていますが、PHP マルチケース モードについて語る人はほとんどいません。以下は、Wikipedia で見られる PHP マルチケース モードの例です。
コードをコピー コードは次のとおりです:
abstract class Multiton {
private static $instances = array();
public static function getInstance() {
$key = get_called_class( ) . シリアル化 (func_get_args());
if (!isset(self::$instances[$key])) {
$rc = new ReflectionClass(get_called_class()); $rc- >newInstanceArgs(func_get_args());
}
return self::$instances[$key];
}
}
class Hello extends Multiton {
public function __construct($string = 'World') {
echo " こんにちは $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(' ワールド');
// $a === $c
$d = GoodBye::getInstance();
$e = GoodBye::getInstance();
$ f = GoodBye::getInstance('your')
// $d !== $f
?>
;
PHP マルチインスタンス モードでは、キー値を渡すために getInstance() が必要であることがわかります。PHP マルチインスタンス モードでは、メモリとメモリが節約されます。同じオブジェクトの複数のインスタンスが競合しないようにします。
http://www.bkjia.com/PHPjc/327868.html
www.bkjia.com
truehttp://www.bkjia.com/PHPjc/327868.html技術記事 Java を勉強すると、設計パターンには複数のインスタンスがあることがわかります。 1. マルチインスタンス クラスは複数のインスタンスを持つことができます。 2. マルチインスタンス クラスは、独自のインスタンスを作成および管理し、提供できる必要があります。外の世界への独自の実装...