|
简介:
注册树模式,属于结构型的设计模式。一种很简单的设计模式
适用场景:
类似IOC。写一个庞大的类库的时候,为了方便各种资源的归纳,可以统一放到一棵树上。
优点:
- 把一个个游兵散将一样的对象进行统一管理。
- 另外可以根据项目的业务场景自定义层级。
缺点:
- 增加项目的复杂性。
- 纯粹的注册树写法,缺少单例模式的有点,可能存在重复创建对象的可能,需要做额外的验证。
代码
- class RegTree {
- private static $objects;
- //注册
- public static function set($name, $object) {
- self::$objects[$name] = $object;
- }
- //获取
- public static function get($name) {
- if(empty(self::$objects[$name])) {
- throw new \Exception($name . ' does not exists');
- }
- return self::$objects[$name];
- }
- public static function destroy($name) {
- unset(self::$objects[$name]);
- }
- }
- //调用端=============================================
- $key = 'std_class';
- RegTree::set($key, new \StdClass());
- print_r(RegTree::get($key));
- RegTree::destroy($key);
- print_r(RegTree::get($key));
复制代码 来源:https://www.cnblogs.com/phpphp/p/16867997.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作! |
|