一、概述
注册模式是一种常见结构型的设计模式、将实例注册到一个注册器中,供全局使用
二、核心
- 解决了全局共享问题
- 使需要全局使用的实例随时可以使用,不需要在重新实例化
三、结构图
四、代码示例
<?php
/*
* 解决全局共享和交换对象
* 将类的对象注册到全局类上,在需要使用的时候可以直接访问
*/
class Register
{
protected static $globalArr = array();
static function set($alias, $object)
{
self::$globalArr[$alias] = $object;
}
static function get($alias)
{
return self::$globalArr[$alias];
}
static function _unset($alias)
{
unset(self::$globalArrhh[$alias]);
}
}
//定义一个空对象,模拟实例
$single = (object)[];
//将实例$single注册到数组中
Register::set("single", $single);
//获取该实例
$obj = Register::get("single");