用来解决全局共享和交换对象
原来我们必须调用工厂或者调用类
我们创建这个对象能不能直接调用?
注册模式,用来将我们对象注册到全局上面,他就可以被任何地方直接访问
声明一个Register.php
<?phpnamespace zhuceshu;
{
protected static $objects;
static function set($alias,$object) //将一个对象注册到全局的注册树上,$alias映射的名字
{
self::$objects[$alias] = $object;
}
static function get($name) //取到放进去的对象
{
return self::$objects[$name];
}
function _unset() //unset已经有了,需要下划线避免重复,从树上移除
{
unset(self::$objects[$alias];
}
}
//在我们工厂方法就可以和注册树结合起来
<?php
namespace zhuceshu;
class Fatory
{
static function createDatabase()
{
$db = Database::getInstance();
Register::set('db1',$db)
return $db;
}
}
<?php
namespace zhuceshu;
Farory::createDatabase(); //这句话可以在初始化的时候执行
$db = \test\Register::get('db1');