PHP设计模式之一:注册树

注册树模式为应用中经常使用的对象创建一个中央存储器来存放这些对象 —— 通常通过一个只包含静
态方法的抽象类来实现(或者通过单例模式)。也叫做注册器模式


用处:对于实例可以全局统一管理获取,多用于 初始化 时把要使用的对象放在注册树上


注册树文件

Register.php

<?php


class Register
{
    //保存对象的树
    protected static $objs;
    //放上树的方法
    static function set($name,$db){
        self::$objs[$name] = $db;
    }
    //得到树上的对象
    static function get($name){
        return self::$objs[$name];
    }
    //删除树上的对象
    static function nset($name){
        unset(self::$objs[$name]);
    }
}


例如在工厂模式中,生产时就把对象注册在树上

Factory.php

<?php

class Factory
{
    public static function createMysql(){
        $db = new Mysql();
        Register::set('objsql',$db);
    }
}

index.php

<?php
//注册到树上
Factory::createMysql();

//在以后和现在的文件中都可以通过访问注册树获取工厂中Mysql的对象,不需要再次创建实例,类似于
全局变量的使用
$db = Register::get('objsql');

猜你喜欢

转载自blog.csdn.net/root_admin_12138/article/details/81278932