注册树模式

Posted 寻觅beyond

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了注册树模式相关的知识,希望对你有一定的参考价值。

通过注册树模式可以更加简单快捷的获取对象,在某个地方实例化了一个对象,可以将这个对象“保存”起来,用的时候只需要提供 保存对象的时候 的那个标识即可。

举个例子:你有一个行李箱,因为某个原因,你暂时要去另外一个地方,行李暂时带着没什么用,也很麻烦,这时你可以考虑将行李存 到 行李寄存处,工作人员给一个凭证,只需要出示这个凭证就可以取行李或者告诉工作人员把行李扔了

其实上面的例子已经很明白了。下面是实现的代码:

<?php
class A{ }

class Register{
	public static $obj=array();

	public static function set($key,$value){
		if($value){
			self::$obj[$key]=$value;
		} else {
			echo "请指定注册的对象实例";
			exit;
		}
	}

	public static function get($key){
		if(isset(self::$obj[$key])){
			return self::$obj[$key];
		} else {
			echo "该对象未注册";
			exit;
		}
	}

	public static function delete($key){
		if(isset(self::$obj[$key])){
			unset(self::$obj[$key]);
		} else {
			echo "该对象未注册";
			exit;
		}
	}
}

$a=new A;
Register::set("a_obj",$a);
$test=Register::get("a_obj");
var_dump($test);			//object(A)#1 (0) { }

$test=Register::get("b_obj");	//该对象未注

?>

  

以上是关于注册树模式的主要内容,如果未能解决你的问题,请参考以下文章

php模式设计之 注册树模式

php实现注册树模式

Yii2设计模式——注册树模式

PHP设计模式_注册树模式

php注册数模式

PHP设计模式-注册模式