您的位置 首页 php

20 PHP 设计模式系列「注册模式(Registry)」

1、模式定义

注册模式( Registry )也叫做注册树模式,注册器模式。注册模式为应用中经常使用的对象创建一个中央存储器来存放这些对象 —— 通常通过一个只包含 静态方法 抽象类 来实现(或者通过 单例模式 )。

2、UML类图

3、示例代码

Registry.php

<?php
namespace 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

<?php
namespace 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);
 }
}
 

文章来源:智云一二三科技

文章标题:20 PHP 设计模式系列「注册模式(Registry)」

文章地址:https://www.zhihuclub.com/153066.shtml

关于作者: 智云科技

热门文章

网站地图