注册树模式

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

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

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

<?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");	//该对象未注

?>

  

posted @ 2017-12-30 16:25  寻觅beyond  阅读(290)  评论(0编辑  收藏  举报
返回顶部