参考文章:https://segmentfault.com/a/1190000007495855
简介
注册树模式
又称注册模式
或注册器模式
。注册树模式通过将对象实例注册到一棵全局的对象树上,需要的时候从对象树上采摘的模式设计方法。和果树不同的是,果子只能采摘一次,而注册树上的实例却可以无数次获取。
使用了注册树模式后,对于实例,我们能够更好地统筹管理安排,就像使用全局变量一样的方便实用。
示例:
<?php /** * Class Register 注册树类 */ class Register { // 树的枝干-用于储存树上的果实(实例) public static $objects; // array /** * 将实例插入注册树中 * * @param $alias 对象别名-注册树中的名称 * @param $object 对象实例 */ public static function set($alias, $object) { self::$objects[$alias] = $object; } /** * 从注册树中读取实例 * * @param $alias 对象别名-注册树中的名称 * * @return mixed 返回的对象实例 */ public static function get($alias) { if (isset(self::$objects[$alias])) { return self::$objects[$alias]; } else { echo '对象弄丢了'; } } /** * 销毁注册树中的实例 * * @param $alias 对象别名-注册树中的名称 */ public static function _unset($alias) { unset(self::$objects[$alias]); } } Register::set('conf', array('dbhost' => '127.0.0.1')); print_r(Register::get('conf'));
结果: