注册树模式

注册树模式,在学习了单例模式和工厂模式之后,我们知道都会产生对象,就算是单例模式,我们在使用的时候也需要每次都判断是不是存在这个对象,注册树就是解决这个问题的,使我们更方便的,统筹的调用这些对象;(把产生的对象“插入”到注册树上,需要的时候再取出来)

我们实现注册树模式参考以下:

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);

模式设计之间会相辅相成

posted @ 2016-08-15 16:29  芭菲雨  阅读(380)  评论(0编辑  收藏  举报