php设计模式之注册树模式

注册树模式

注册树模式为应用中经常使用的对象创建一个中央存储器来存放这些对象,直接获取一个已经创建好的对象

<?php
class Registry {
    //存放实例
    protected static $objects = array();
    
    //存入实例
    static public function set($key){
        self::$objects[$key] = new $key;
    }
    
    //获取实例
    static public function get($key) {
        if(!isset(self::$objects[$key])){
            self::set($key);
        }
        return self::$objects[$key];
    }
    
    //删除实例
    static public function _unset($key) {
        unset(self::$objects[$key]);
    }
}

//DB测试类
class DB{}


//存入实例
Registry::set('DB');
//查看实例
$db = Registry::get('DB');
$db1 = Registry::get('DB');
$db2 = Registry::get('DB');
var_dump($db,$db1,$db2);
#输出
object(DB)#1 (0) {
}
object(DB)#1 (0) {
}
object(DB)#1 (0) {
}

注册树可以和単例模式结合使用,先查看注册树上是否有単例的实例,存在就直接使用,不存在就生成实例并挂到树上.

上一篇 php设计模式之单例模式
下一篇 php设计模式之适配器模式

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。