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