PHP设计模式
今天写下我对注册器模式的理解。
简介
注册器模式简单来说就是将我们常常使用的对象(这些对象通常是一个生命周期内只有一个)放置到一个全局的类上面。
下面我们看个例子
namespace Core;
calss Register {
private static $objs = [];
public static function registerObj ($name, $obj) {
return self::$objs [$name] = $obj;
}
public static function getObj($name){
return self::$objs[$name] ?? null;
}
public static function delObj($name)
{
if(isset(self::$objs[$name])){
unset(self::$objs[$name]);
return true;
}
return false;
}
}
class Request{}
class Response{}
Register::registerObj('request', new Request);
Register::reqisterObj('response', new Response);
// 通过上面的注册就可以在全局的任意地方使用这个对象了
$requset = Register::getObj('request');
ps
上面就是对注册器的理解,注册器模式是结合单例模式和工厂模式的综合体,弥补了两种模式的“不足”。
评论已关闭