ホームページ >バックエンド開発 >PHPチュートリアル >PHPデザインパターンシリーズ - 登録パターン(レジストリ)

PHPデザインパターンシリーズ - 登録パターン(レジストリ)

WBOY
WBOYオリジナル
2016-06-23 13:20:151289ブラウズ

1. モード定義

登録モード(レジストリ)は、登録ツリーモード、レジスタモードとも呼ばれます。 Registration パターンは、アプリケーションで頻繁に使用されるオブジェクトの中央ストアを作成します。通常は、静的メソッドのみを含む抽象クラスを通じて (または Singleton パターンを通じて)。

2. UML クラス図

3. サンプルコード

Registry.php

<?phpnamespace DesignPatterns\Structural\Registry;/** * class Registry */abstract class Registry{    const LOGGER = 'logger';    /**     * @var array     */    protected static $storedValues = array();    /**     * sets a value     *     * @param string $key     * @param mixed  $value     *     * @static     * @return void     */    public static function set($key, $value)    {        self::$storedValues[$key] = $value;    }    /**     * gets a value from the registry     *     * @param string $key     *     * @static     * @return mixed     */    public static function get($key)    {        return self::$storedValues[$key];    }    // typically there would be methods to check if a key has already been registered and so on ...}

4. テストコード

Tests/RegistryTest.php

<?phpnamespace DesignPatterns\Structural\Registry\Tests;use DesignPatterns\Structural\Registry\Registry;class RegistryTest extends \PHPUnit_Framework_TestCase{    public function testSetAndGetLogger()    {        Registry::set(Registry::LOGGER, new \StdClass());        $logger = Registry::get(Registry::LOGGER);        $this->assertInstanceOf('StdClass', $logger);    }}
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。