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

yizhihongxing

简介:

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

适用场景:

类似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 Curl多线程原理实例详解

    关于“PHP Curl 多线程原理实例详解”,我们可以提供以下攻略: 1. PHP Curl 多线程原理介绍 在使用 PHP Curl 进行网络请求时,单线程的方式会让请求变慢,因此可以通过多线程的方式提高网络请求的速度。多线程的实现原理可以通过 PHP 的 curl_multi_* 系列函数来实现,以下是其主要的步骤: 创建 Curl 的多个资源句柄(cu…

    PHP 2023年5月27日
    00
  • 如何在Windows平台下搭建PHP环境(phpnow图解版)

    以下是详细讲解如何在Windows平台下搭建PHP环境(phpnow图解版)的完整攻略: 环境概述 在Windows平台下,我们可以使用一些集成了Apache、PHP以及MySQL等软件的套装来快速地搭建PHP环境。其中phpnow就是其中的一个。 下载phpnow 首先,我们需要前往phpnow的官网(http://www.phpnow.cn/)下载最新版…

    PHP 2023年5月24日
    00
  • PHP常用的三种设计模式汇总

    针对“PHP常用的三种设计模式汇总”的完整攻略,我将会从以下四个方面逐一进行说明: 什么是设计模式 PHP常用的三种设计模式 示例说明:工厂模式 示例说明:单例模式 希望这份攻略能够帮助到您。 1. 什么是设计模式 设计模式是在面向对象编程中,针对于一些常见的,通用化的问题和需求所提出的一套解决方案的经验总结,它是一种模板式的、通用的解决方案。 在应用设计模…

    PHP 2023年5月23日
    00
  • 用asp与php实现百度ping服务的代码

    下面是详细讲解“用asp与php实现百度ping服务的代码”的完整攻略。 1. 什么是百度ping服务 首先,我们需要了解百度ping服务是什么。百度ping服务是百度提供的一项推送服务,可以让站长自动向百度搜索引擎推送新的或变更的网站页。推送方式有两种,分别为XML-RPC API和HTTP API。 2. 实现百度ping服务的代码 2.1 ASP实现百…

    PHP 2023年5月23日
    00
  • PHP实现十进制、二进制、八进制和十六进制转换相关函数用法分析

    下面为您详细讲解PHP实现十进制、二进制、八进制和十六进制转换相关函数用法分析的完整攻略。 一、PHP转换进制的相关函数 在PHP中,转换进制可以使用以下函数: decbin($num): 将十进制数转换为二进制数。 decoct($num): 将十进制数转换为八进制数。 hexdec($num): 将十六进制数转换为十进制数。 bindec($num): …

    PHP 2023年5月26日
    00
  • PHP导出MySQL数据到Excel文件(fputcsv)

    PHP导出MySQL数据到Excel文件(fputcsv) 概述 本篇攻略将会详细介绍使用PHP将MySQL数据导出至Excel文件的方法,采用fputcsv函数实现,其可以在CSV文件中创建一行。 准备工作 在使用该方法之前需要确保以下条件已经满足: PHP环境已经安装并配置成功 已经安装并启动MySQL数据库并成功连接它 了解fputcsv函数的使用方法…

    PHP 2023年5月26日
    00
  • PHP操作mysql函数详解,mysql和php交互函数

    让我来为您详细讲解一下PHP操作MySQL函数的攻略。 1. 连接MySQL数据库 在PHP中连接MySQL数据库使用的是mysqli函数。 格式: $mysqli = new mysqli($servername, $username, $password, $dbname); 其中, $servername 表示 MySQL 服务器主机地址, $user…

    PHP 2023年5月25日
    00
  • php字符串操作针对负值的判断分析

    下面是PHP字符串操作针对负值的判断分析的相关攻略。 1. PHP字符串操作简介 在PHP中,字符串是一种非常重要的数据类型。PHP提供了一系列的字符串函数来完成字符串操作,包括字符串的连接、截取、替换、查找等常见的操作。 2. PHP字符串的负值问题 在PHP中,字符串的下标是从0开始的,也允许使用负数作为下标,负数表示从字符串末尾开始倒数的位置。例如,-…

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