04
06月
2020
注册树模式
模式定义
注册树模式又称注册模式或注册器模式。注册树模式通过将对象实例注册到一棵全局的对象树上,需要的时候从对象树上采摘的模式设计方法。和果树不同的是,果子只能采摘一次,而注册树上的实例却可以无数次获取。
注册树模式的优势
使用了注册树模式后,对于实例,我们能够更好地统筹管理安排,就像使用全局变量一样的方便实用。
代码示例
Register\Register.class.php
<?php
namespace Register;
class Register
{
public static $objects;
public static function set($alias, $onject)
{
self::$objects[$alias] = $onject;
}
public static function get($alias)
{
if(isset(self::$objects[$alias])){
return self::$objects[$alias];
}else{
echo '对象不存在';
}
}
public static function _unset($alias)
{
unset(self::$objects[$alias]);
}
}Register\Test.class.php
<?php
namespace Register;
class Test
{
public function run()
{
echo "test register";
}
}Register\RegisterTest.php
<?php
spl_autoload_register(function ($className){
$className = str_replace("\\", "/", $className);
include $className.".class.php";
});
use Register\Test;
use Register\Register;
$test = new Test();
Register::set('t', $test);
Register::get('t')->run();测试示例:
php Register/RegisterTest.php 输出: test register
代码地址:https://github.com/798256478/design-patterns/tree/master/Register