参考文章: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‘));
结果:
PHP设计模式 -- 注册模式
原文地址:https://www.cnblogs.com/chenhaoyu/p/9063520.html