注册树模式
注册树模式,在学习了单例模式和工厂模式之后,我们知道都会产生对象,就算是单例模式,我们在使用的时候也需要每次都判断是不是存在这个对象,注册树就是解决这个问题的,使我们更方便的,统筹的调用这些对象;(把产生的对象“插入”到注册树上,需要的时候再取出来)
我们实现注册树模式参考以下:
1.创建一个注册树类
2.在类里面创建一个私有或保护的属性用来存储对象
3.创建存储和销毁对象的方法
4.为了外部调用,我们需要创建获取对象的方法
5.创建对象,获取对象、销毁对象的方法,为了方便外部调用,设置为静态方法
示例源码:
<?php class Register{ protected static $objs; public static function set($alias,$object){ self::$objs[$alias]=$object; } public static function get($alias){ return self::$objs[$alias]; } public static function _unset($alias){ unset(self::$objs[$alias]); } }
在外部调用的时候,假如结合工厂模式,将产生的对象加在注册树上
<?php Register::set('mysqlobj',Factory::creat("mysql")); $object=Register::get('mysqlobj'); print_r($object);
模式设计之间会相辅相成