PHP设计模式 注册器模式

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
上面就是对注册器的理解,注册器模式是结合单例模式和工厂模式的综合体,弥补了两种模式的“不足”。

阿杰博客
请先登录后发表评论
  • latest comments
  • 总共0条评论