浅谈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文件上传简单实现方法的攻略,包含过程细节和两个具体示例: 1. 使用HTML表单创建上传文件控件 在HTML表单中加入文件上传控件,这样可以让用户选取需要上传的文件。表单中主要包含以下内容: <form action="upload.php" method="post" enctype=&quot…

    PHP 2023年5月26日
    00
  • 迪菲-赫尔曼密钥交换(Diffie–Hellman)算法原理和PHP实现版

    迪菲-赫尔曼密钥交换算法原理 简介 迪菲-赫尔曼密钥交换算法(Diffie–Hellman key exchange)是一种安全密钥交换协议,用于在两个实体之间建立一个共享密钥,这个协议是非对称加密算法。 原理 迪菲-赫尔曼密钥交换算法是基于一个数学原理:离散对数问题(Discrete Logarithm Problem)。无法有效求解大规模质数的离散对数问…

    PHP 2023年5月26日
    00
  • php将服务端的文件读出来显示在web页面实例

    下面是php将服务端的文件读出来显示在web页面的完整攻略。 准备工作 在本地或者服务器上安装PHP解释器 创建一个php文件,并将其命名为index.php 在index.php文件中写入代码,用于读取服务端文件并将其显示在web页面上。 读取服务端文件 我们可以使用常用的PHP文件读取函数file_get_contents()或fopen()与fread…

    PHP 2023年5月26日
    00
  • php数组函数序列之array_pop() – 删除数组中的最后一个元素

    下面是对php数组函数序列之array_pop()的详细讲解。 标题 php数组函数序列之array_pop() – 删除数组中的最后一个元素 简介 在php中,array_pop()函数用于删除一个数组中的最后一个元素,并返回该元素。 语法 array_pop(array $array): mixed 参数 array:必需,要进行操作的数组。 返回值 返…

    PHP 2023年5月26日
    00
  • PHP实现的只保留字符串首尾字符功能示例【隐藏部分字符串】

    下面是详细讲解 “PHP实现的只保留字符串首尾字符功能示例【隐藏部分字符串】” 的完整攻略: 概述 本文介绍如何使用PHP实现以隐藏部分字符串的方式保留字符串的首尾字符功能。实现方法是使用substr函数,结合字符串长度、字符替换和正则表达式等操作。 步骤 步骤一:定义字符串 首先定义一个字符串,例如: $str = ‘this is a test stri…

    PHP 2023年5月26日
    00
  • Redis分布式锁的正确实现方法总结

    Redis分布式锁的正确实现方法总结 背景 随着高并发应用的逐渐普及,分布式锁也成为了越来越多的关注点。Redis作为一个高效的缓存工具,其提供的分布式锁凭借着其性能和易用性,被越来越多的项目所采用。然而Redis的分布式锁并非完全可靠,采用不正确的方式很容易引发死锁等问题。因此,本文旨在总结Redis分布式锁的正确实现方法,以帮助开发者更好地使用Redis…

    PHP 2023年5月27日
    00
  • scratch怎么画荷花? scratch椭圆工具画荷花的教程

    想要在Scratch中绘制一个荷花,可以通过使用椭圆工具来实现。以下是使用椭圆工具绘制荷花的详细步骤: 步骤1:选择椭圆工具 首先,打开Scratch界面并创建一个新项目。然后,选择“绘制”选项卡,这里可以看到各种可用的绘图工具。选择“椭圆工具”以开始制作荷花。 步骤2:调整椭圆形状和颜色 绘制荷花的第一步是要调整椭圆形状的大小和颜色,以使其看起来更像荷花的…

    PHP 2023年5月30日
    00
  • PHP的十个高级技巧(上中下)第3/3页

    我们来详细讲解“PHP的十个高级技巧(上中下)第3/3页”的完整攻略。 标题 “PHP的十个高级技巧(上中下)第3/3页”的完整攻略 简介 PHP是一门常用的服务端编程语言,对于PHP开发者,了解和掌握一些高级技巧和技术是非常重要的。本文将介绍PHP中的十个高级技巧,帮助开发者提高开发效率和项目质量。 正文 技巧八:懒加载模式 懒加载模式指在需要时才加载数据…

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