注册树模式概念

注册树模式也叫注册模式或注册器模式。注册树模式将对象实例注册到一棵全局的对象树上,需要的时候从对象树上获取即可。

注册树模式优点

单例模式创建唯一对象的过程本身还有一种判断,即判断对象是否存在,存在则返回对象,不存在则创建对象并返回。 工厂模式更多考虑的是扩展维护的问题。 总的来说,单例模式和工厂模式可以产生更加合理的对象。怎么方便调用这些对象呢?注册树模式是一种不错的选择。不管是通过单例模式还是工厂模式还是二者结合生成的对象,都统统给我插入到注册树上,用某个对象的时候,直接从注册树上获取即可。

注册树模式实例

假如已经存在类Database;<?php

class Register

{

protected static $objects;

static function set($alias, $object)

{

self::$objects[$alias] = $object;

}

static function get($key)

{

if (!isset(self::$objects[$key]))

{

return false;

}

return self::$objects[$key];

}

function _unset($alias)

{

unset(self::$objects[$alias]);

}

}

class Factory{

static function createDatabase(){

$db = new Database();

//插入到注册树

Register::set('db1', $db);

}

}

//从注册树里获取

$db = Register::get('db1');

php注册树模式,php设计模式-注册树模式相关推荐

  1. 工厂模式 java_JAVA设计模式之工厂模式(简单工厂模式+工厂方法模式)

    在面向对象编程中, 最通常的方法是一个new操作符产生一个对象实例,new操作符就是用来构造对象实例的.但是在一些情况下, new操作符直接生成对象会带来一些问题.举例来说, 许多类型对象的创造需要一 ...

  2. java web简单工厂模式_JAVA设计模式之工厂模式(简单工厂模式+工厂方法模式)

    在面向对象编程中, 最通常的方法是一个new操作符产生一个对象实例,new操作符就是用来构造对象实例的.但是在一些情况下, new操作符直接生成对象会带来一些问题.举例来说, 许多类型对象的创造需要一 ...

  3. python的out模式_Python设计模式之状态模式

    状态模式 面向对象编程着力于在对象交互时改变它们的状态.在很多问题中,有限状态机(通常名为状态机)是一个非常方便的状态转换建模(并在必要时以数学方式形式化)工具.首先,什么是状态机?状态机是一个抽象机 ...

  4. 建造者模式java_java设计模式3——建造者模式

    java设计模式3--建造者模式 1.建造者模式介绍: 建造者模式属于创建型模式,他提供了一种创建对象得最佳方式 定义: 将一个复杂对象的构建和与它的表示分离,使得同样的构建过程可以创建不同的表示 主 ...

  5. python的编程模式-Python设计模式之状态模式原理与用法详解

    本文实例讲述了Python设计模式之状态模式原理与用法.分享给大家供大家参考,具体如下: 状态模式(State Pattern):当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类 ...

  6. python工厂模式 django_python设计模式-工厂方法模式

    题目:假设你有一个 pizza 店,功能包括下订单.做 pizza,你的代码会如何写呢? def order_pizza(): pizza = Pizza() pizza.prepare() pizz ...

  7. Java创新型模式_java设计模式--创建型模式(一)

    2016-04-24 10:10:34 创建型模式:工厂方法模式.抽象工厂模式.单例模式.建造者模式.原型模式 注意:工厂模式可以分为三类: 1)简单工厂模式(Simple Factory) 2)工厂 ...

  8. python 命令模式_python 设计模式之命令模式

    命令模式介绍: 在面向对象编程中,命令模式是概括所有方法信息的设计模式. 此模式对象包涵方法名,及其相关参数值. 命令模式是一个分类的观察者设计模式,在命令模式下,对象被概括为一个命令表单,此表单包涵 ...

  9. java之备忘录模式,java设计模式之备忘录模式

    java设计模式之备忘录模式 代码无错便是优? 简介: 在不破坏封装性的前提下 , 捕获一个对象的内部状态,并在该对象之外保存这个状态 , 这样以后就可以将该对象恢复到原先保存的状态 . 备忘录模式就 ...

最新文章

  1. Firefox火狐广告过滤插件Adblock Plus过滤规则包[中文维护小组]
  2. Python入门学习笔记11(静态方法、类方法与属性方法)
  3. Oracle回收站解决误删除表
  4. 聊聊 rel=noopener
  5. python数据分析之(3)pandas
  6. 3D控件Aspose.3D 8月新版V17.8发布 | 支持6面多维地图
  7. excel文件修复工具_psd文件修复工具下载|Recovery Toolbox for ps 最新版v2.3.1.0 下载
  8. 2021DASCTF实战精英夏令营暨DASCTF July X CBCTF 4th -- WP [pwn]
  9. 富士康计划豪掷4000万美元投资美国制造业
  10. 概率论中常见分布的数学期望、方差及特征函数推导 (一)离散型随机变量
  11. app开发已经过时了?app开发行业分析
  12. 《让时间陪你慢慢变富》有感
  13. Kubernetes(k8s)之Service(服务)
  14. Linux上类似vbs脚本,VBS脚本常用经典代码收集
  15. som神经网络聚类简单例子_深度聚类的可视化解释
  16. CORDIC算法计算复数相位角(含verilog源码)
  17. 谈谈在我在外包公司工作的经历,悲催的我,还失去了我心爱的猴子
  18. 博士毕业应不应该创业?
  19. 英雄埋骨无人问,戏子家事天下知!
  20. 倩女幽魂显示服务器繁忙,倩女幽魂手游新服首开服务器爆满,万人排队逼疯玩家...

热门文章

  1. windows打开的winform当前焦点 是否是hwnd_推介几款 windows 下非常好用的工具
  2. python交叉验证函数_python – 在sklearn中使用交叉验证和AUC-ROC作为逻辑回归模型...
  3. java父包引用_父类引用指向子类对象(java)
  4. halcon 将数据保存到excel_pandas筛选、合并、批量保存excel数据
  5. k折交叉验证法python实现_Jason Brownlee专栏| 如何解决不平衡分类的k折交叉验证-不平衡分类系列教程(十)...
  6. TensorFlow 多任务学习
  7. 用S-函数编写Simulink中的正弦模块
  8. 模拟Struts2实现
  9. 创建型、结构型、行为型模式(2)
  10. Swagger 注解~用于模型