什么是注册树模式
注册树模式也叫注册模式或注册器模式。注册树模式将对象实例注册到一棵全局的对象树上,需要的时候从对象树上获取即可。方便去调用这些对象,便于统筹管理安排。
注册树模式的优点
单例模式创建唯一对象的过程本身还有一种判断,即判断对象是否存在,存在则返回对象,不存在则创建对象并返回。 工厂模式更多考虑的是扩展维护的问题。 总的来说,单例模式和工厂模式可以产生更加合理的对象。怎么方便调用这些对象呢?注册树模式是一种不错的选择。不管是通过单例模式还是工厂模式还是二者结合生成的对象,都统统给我插入到注册树上,用某个对象的时候,直接从注册树上获取即可。
引用于 http://www.36nu.com/post/132.html
注册树模式的实现
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
| <?php
/** * 注册树模式 * Class Register */ class Register { protected static $objects = [];// 注册数组
/** * 注册 * @param string $alias * @param object $object */ public static function set(string $alias, $object) { self::$objects[$alias] = $object; }
/** * 撤销注册 * @param string $alias */ public static function _unset(string $alias) { unset(self::$objects[$alias]); }
/** * 获取 * @param $alias * @return mixed */ public static function get($alias) { return self::$objects[$alias]; } }
class Db { } $db = new Db(); Register::set('db', $db); $result = Register::get('db'); var_dump($result);
|