浅谈PHP设计模式的注册树模式

简介:

注册树模式,属于结构型的设计模式。一种很简单的设计模式

适用场景:

类似IOC。写一个庞大的类库的时候,为了方便各种资源的归纳,可以统一放到一棵树上。

优点:

  1. 把一个个游兵散将一样的对象进行统一管理。
  2. 另外可以根据项目的业务场景自定义层级。

缺点:

  1. 增加项目的复杂性。
  2. 纯粹的注册树写法,缺少单例模式的有点,可能存在重复创建对象的可能,需要做额外的验证。

代码

class RegTree {
    private static $objects;

    //注册
    public static function set($name, $object) {
        self::$objects[$name] = $object;
    }

    //获取
    public static function get($name) {
        if(empty(self::$objects[$name])) {
            throw new \Exception($name . ' does not exists');
        }
        return self::$objects[$name];
    }

    public static function destroy($name) {
        unset(self::$objects[$name]);
    }
}

//调用端=============================================
$key = 'std_class';
RegTree::set($key, new \StdClass());
print_r(RegTree::get($key));
RegTree::destroy($key);
print_r(RegTree::get($key));

原文链接:https://www.cnblogs.com/phpphp/p/16867997.html

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:浅谈PHP设计模式的注册树模式 - Python技术站

(0)
上一篇 2023年4月18日
下一篇 2023年4月18日

相关文章

  • PHP打印输出函数汇总

    以下是“PHP打印输出函数汇总”的完整攻略: PHP打印输出函数汇总 echo echo 是 PHP 中最常用的打印输出函数之一,用于将字符串或变量输出到屏幕上。 <?php echo "Hello World!"; // 输出字符串 $num = 3; echo $num; // 输出变量值 ?> 以上的示例中,我们使用 e…

    PHP 2023年5月26日
    00
  • Laravel中间件的使用详解

    下面是“Laravel中间件的使用详解”的完整使用攻略,包括中间件的基本原理、中间件的使用方法和两个示例说明。 中间件的基本原理 在Laravel中,中间件是一种用于处理HTTP请求和响应的机制。中间件可以在请求到达应用程序之前或之后执行一些操作,如身份验证、日志记录、缓存等。 中间件的基本原理是:在请求到达应用程序之前或之后执行一些操作。中间件可以修改请求…

    PHP 2023年5月12日
    00
  • 使用ajaxfileupload.js实现ajax上传文件php版

    使用ajaxfileupload.js可以实现通过Ajax方式上传文件,本攻略将介绍如何使用ajaxfileupload.js上传文件并处理上传后的文件。 安装依赖 在使用ajaxfileupload.js之前需要安装jQuery,可以在官网下载,或者使用以下CDN: <script src="https://code.jquery.com/…

    PHP 2023年5月27日
    00
  • php实现的SSO单点登录系统接入功能示例分析

    来讲一下“php实现的SSO单点登录系统接入功能示例分析”的完整攻略吧。 什么是SSO单点登录系统? SSO全称为“Single Sign-On”,单点登录系统是一种集中的验证系统,用户可以使用一个用户名和密码来访问多个系统,而不必在不同系统之间自己输入用户名和密码。 实现SSO单点登录系统接入功能 实现SSO单点登录系统接入功能的步骤如下: 安装SSO单点…

    PHP 2023年5月24日
    00
  • matlab2014a怎么激活?matlab2014a安装破解激活图文详细教程

    如果你想要激活Matlab2014a,并且想要了解更具体的安装破解激活过程,可以按照以下步骤来操作: 步骤1:下载Matlab 首先,在Math Works官网上找到Matlab2014a的下载链接,下载完整版的Matlab2014a安装包。 步骤2:安装Matlab 下载完成后,打开Matlab的安装包文件,并根据提示进行安装。安装过程中,需要注意选择合适…

    PHP 2023年5月27日
    00
  • 微信支付开发告警通知实例

    微信支付开发告警通知实例 概述 微信支付平台为商户提供了多种告警通知方式,包括邮件、短信、语音电话等,本文将主要介绍微信支付开发告警通知实例,并以邮件告警通知为例进行详细说明。 邮件告警通知 配置告警邮箱 在微信支付商户平台的“系统设置”中配置告警邮箱,具体步骤如下: 登录微信支付商户平台,在左侧菜单栏选择“系统设置” 进入“邮件告警配置”页签,点击“新增”…

    PHP 2023年5月23日
    00
  • PHP中递归的实现实例详解

    PHP中递归的实现实例详解 什么是递归 递归是一种解决问题的方法,它将问题分解为更小的子问题,直到问题的规模小到可以被直接处理。递归通常涉及函数调用自身。 PHP中递归的基本实现 在PHP中,递归可以通过函数调用自身来实现。下面是一个简单的例子。 function recursion($num) { if ($num <= 0) { return; }…

    PHP 2023年5月27日
    00
  • php使用PDO方法详解

    标题:PHP使用PDO方法详解 一、什么是PDO PDO(PHP Data Objects)是 PHP 5 引入的一个访问数据库的标准 API,它使用面向对象的方式访问各种数据库。PDO 提供了一组公共的接口给各种数据库使用,包括 Oracle、MySQL、SQLite 等等。 二、PDO的优势 相比于原来的 MySQL 函数库,PDO 有以下的几个优势: …

    PHP 2023年5月26日
    00
合作推广
合作推广
分享本页
返回顶部