php设计模式入门:php注册模式实例教程

发布时间:2019-11-20编辑:脚本学堂
有关php设计模式中注册模式的实现方法,php设计模式之注册模式入门教程,注册模式通过单一的全局的对象来获取对其它对象的引用,具体见本文php注册模式的实现代码。

php设计模式入门教程:php注册模式

应用场景:
当有一组全局对象被全局访问时可能就需要用到注册模式 (registry),它提供了在程序中有条理的存放并管理对象 (object)一种解决方案。
一个“注册模式”应该提供get() 和 set()方法来存储和取得对象。

1、注册模式通过单一的全局的对象来获取对其它对象的引用。
 

复制代码 代码示例:
<?php
/**
 * PHP设计模式之注册模式实例
 *
 
 */
class Registry {
protected static $objects; //用于存放对象的数组
/**
 * 将对象放到对象数组上
 * @param string $alias 别名
 * @param object $object 对象
 */
static function set($alias, $object) {
self::$objects[$alias] = $object;
}
 
   /**
* 将对象从数组上删除
* @param string $alias 别名
*/
static function _unset($alias) {
unset(self::$objects[$alias]);
}
/**
 * 通过别名获取对象
 * @param string $alias 别名
 */
static function get($alias) {
if (array_key_exists($alias, self::$objects)) {
return self::$objects[$alias];
}
}
}
class MyObject {
public function test(){
return 'ok';
}
}
//结合工厂模式
class MyFactory {
public static function factory(){
//返回对象的实例
$myObject =  new MyObject();
Registry::set("myObject", $myObject);
}
}
//调用工厂
MyFactory::factory();
//使用
echo Registry::get("myObject")->test();
Registry::_unset("myObject");
?>