PHP设计模式之-----注册树模式
来源:互联网 发布:java 中文字符 编辑:程序博客网 时间:2024/06/05 12:45
<?php/* * 单例模式解决的是如何在整个项目中创建唯一对象实例的问题,工厂模式解决的是如何不通过new建立实例对象的方法。 那么注册树模式想解决什么问题呢? 在考虑这个问题前,我们还是有必要考虑下前两种模式目前面临的局限。 首先,单例模式创建唯一对象的过程本身还有一种判断,即判断对象是否存在。存在则返回对象,不存在则创建对象并返回。 每次创建实例对象都要存在这么一层判断。 工厂模式更多考虑的是扩展维护的问题。 总的来说,单例模式和工厂模式可以产生更加合理的对象。怎么方便调用这些对象呢?而且在项目内如此建立的对象好像散兵游勇一样,不便统筹管理安排啊。因而,注册树模式应运而生。不管你是通过单例模式还是工厂模式还是二者结合生成的对象,都统统给我“插到”注册树上。我用某个对象的时候,直接从注册树上取一下就好。这和我们使用全局变量一样的方便实用。 而且注册树模式还为其他模式提供了一种非常好的想法。 * *///创建单例class Single{public $hash;static protected $ins=null;final protected function __construct(){$this->hash=rand(1,9999);}static public function getInstance(){if (self::$ins instanceof self) {return self::$ins;}self::$ins=new self();return self::$ins;}}//工厂模式class RandFactory{public static function factory(){return Single::getInstance();}}//注册树class Register{protected static $objects;public static function set($alias,$object){self::$objects[$alias]=$object;}public static function get($alias){return self::$objects[$alias];}public static function _unset($alias){unset(self::$objects[$alias]);}}Register::set('rand',RandFactory::factory());$object=Register::get('rand');print_R($object);
阅读全文
0 0
- php模式设计之 注册树模式
- 《PHP设计模式》之 注册树模式
- PHP设计模式之-----注册树模式
- php模式设计之 注册树模式
- PHP设计模式之注册模式
- PHP常见的设计模式之:注册树模式
- PHP之注册树模式
- 设计模式之注册器模式(PHP实现)
- php核心学习-设计模式的学习-注册树模式
- 【设计模式】注册树模式
- php 注册树模式
- PHP 注册树模式
- 设计模式三大基础模式之工厂模式,单例模式,注册树模式
- 慕课网----大话PHP设计模式 三(三种基本设计模式-工厂模式,单例模式,注册树模式)
- 设计模式--注册模式
- 4.php 注册树模式
- PHP设计模式-注册台模式(Registry)
- php 设计模式之 代理模式,适配器模式,外观模式
- java实现九九乘法表
- equals(转载)
- 实验A—1 顺序表基本操作
- Hadoop和Spark是两个不同的分布式软件框架
- 详解Unity中的委托与事件
- PHP设计模式之-----注册树模式
- eclipse maven整合SSH项目(实现简单的连接数据库实现登录小例子)
- JSP对属性的操作
- ASP.NET MVC 使用 FluentScheduler 定时器计划任务
- Android4.0通话过程
- 『 Spark 』8. 实战案例 | Spark 在金融领域的应用 | 日内走势预测
- mysql 5.7多实例安装
- Tomcat+nginx项目在浏览器报安全隐患以及图片加载失败原因
- python提示import XX 不存在,如何排查错误