注册树模式(Registry Pattern ):注册树模式为应用中经常使用的对象创建一个中央存储器来存放这些对象 —— 通常通过一个只包含静态方法的抽象类来实现(或者通过单例模式)。也叫做注册器模式
1、 为什么需要注册树模式
解决常用对象的存放问题,实现类似于全局变量的功能。
2、代码实现
class Register
{
/**
* 注册数池子
* @var null
*/
protected static $objects = [];
/**
* 将对象挂在树上
* @param $key
* @param $object
*/
public static function set($key, $object)
{
self::$objects[$key] = $object;
}
/**
* 从树上获取对象, 如果没有的时候 注册
* @param $key
* @return mixed
*/
public static function get($key)
{
if (!isset(self::$objects[$key])) {
self::$objects[$key] = new $key;
}
return self::$objects[$key];
}
/**
* 注销
* @param $key
*/
public static function _unset($key)
{
unset(self::$objects[$key]);
}
}