注册树模式的简单理解
1.注册树模式通过将对象实例注册到一颗全局的对象树上
2.需要的时候从对象树上采摘下来使用
php代码简单实现注册类
<?php
/**
*Descript:
*User: jack wang
*Date: 2020-06-26
*Time: 23:05
*/
class Register
{
/**
* 注册树池子
* @var null
*/
protected static $objects = null;
/**
* 将对象挂载树上
* @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]);
}
}
随意编写一个类
class A
{
public function abc()
{
echo "abd";
}
}
将类A注册到对象树上并调用代码
public function register()
{
//生成一个对象实例
$a = new \A();
//注册一个实例类
\Register::set('A', $a);
//调用一个实例类方法
\Register::get('A')->abc();
//输出 acd
}