浅谈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开发过程中,有些常用的小程序代码段可以有效地减少我们的开发时间和提高我们的效率。下面是一些常用的小程序代码段: 生成随机数 使用mt_rand函数可以生成一个随机的整数。以下是一个示例: $random_number = mt_rand(0, 100); echo $random_number; 这将输出一个0到100之…

    PHP 2023年5月23日
    00
  • php查找字符串中第一个非0的位置截取

    当我们需要在PHP中查找一个字符串中第一个非0的位置并截取该字符串时,可以通过以下步骤完成。 步骤一:查找第一个非0的位置 使用PHP内置函数strpos()来查找第一个非0的位置。strpos()函数返回第一次出现一个字符串在另一个字符串中的数字位置。如果要查找的字符串不在指定的字符串中,则返回false。 例如,我们要查找字符串$str中第一个非0的位置…

    PHP 2023年5月26日
    00
  • php实现模拟post请求用法实例

    下面是详细讲解“php实现模拟post请求用法实例”的完整攻略: 什么是模拟post请求 在介绍实现模拟post请求之前,首先我们需要了解什么是模拟post请求。 HTTP协议中,get和post都是常用的请求方式。不同的请求方式在传递参数时有不同的方式,get请求会在URL后面拼接参数,而post请求则将参数放在请求体中。 模拟post请求,就是使用PHP…

    PHP 2023年5月27日
    00
  • PHP获取数组中指定的一列实例

    当我们在使用PHP开发Web应用时,有时需要仅仅获取数组中的一列数据,而不需要全部数据。下面,我将介绍如何获取PHP数组中指定的一列实例。 使用 array_column 函数 PHP提供了一个名为 array_column 的函数,可以非常方便地获取数组中指定某一列的数据。 array_column 函数需要传入三个参数,分别是需要进行操作的数组、需要获取…

    PHP 2023年5月26日
    00
  • 微信小程序怎么提高审核通过率?微信小程序提高通过率技巧

    针对微信小程序如何提高审核通过率,以下是一些技巧和经验: 1. 合规政策和规范说明 一定要阅读并遵守微信小程序的合规政策和规范说明,包括但不限于内容、功能、UI设计、用户数据等方面的规范要求。有时候,一些细节问题可能会让审核失败,比如商标、版权问题,图片、文字等涉及敏感内容或违规的部分。所以,这一点十分重要。 2. 内容准确完整 提交审核前,需要确保小程序的…

    PHP 2023年5月23日
    00
  • php中各种定义变量的方法小结

    下面是针对“php中各种定义变量的方法小结”的详细攻略: 一、变量的定义 在PHP中,可以通过以下几种方式来定义一个变量: 1. 使用“$”符号 定义变量最简单的方法就是在变量名前面加上$符号,例如: $name = ‘John’; 这样就定义了一个名为$name的变量,其值为字符串’John’。 2. 使用“declare”函数 declare函数是PHP…

    PHP 2023年5月25日
    00
  • PHP可逆加密/解密函数分享

    PHP可逆加密/解密函数分享攻略 介绍 本文将介绍如何使用PHP编写可逆加密/解密函数,这对于保护敏感数据有很大的作用。我们将首先讨论可逆加密算法的原理,然后演示如何使用PHP实现两个常用的可逆加密算法(AES和DES)的加密和解密函数。 可逆加密算法的原理 可逆加密算法是一种能够加密和解密数据的算法。当我们将明文使用加密算法进行加密后,得到的密文可以通过解…

    PHP 2023年5月24日
    00
  • PHP的运行机制与原理(底层)

    PHP是一种流行的服务器端脚本语言,基于C语言、Perl以及Java,可以在Web服务器上运行而不需要编译器的支持。PHP的运行机制和原理是理解PHP的编程思路和调试技巧的关键。以下是PHP的运行机制与原理的完整攻略: 1. PHP的运行机制 1.1 PHP的编译过程 PHP源码编写; 词法分析与语法分析:将PHP源码转化成抽象语法树; 中间代码生成:将抽象…

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