註冊樹模式爲應用中經常使用的對象創建一箇中央存儲器來存放這些對象 —— 通常通過一個只包含靜
態方法的抽象類來實現(或者通過單例模式)。也叫做註冊器模式
用處:對於實例可以全局統一管理獲取,多用於 初始化 時把要使用的對象放在註冊樹上
註冊樹文件
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');