PHP經典設計模式
阿新 • • 發佈:2018-03-15
stat team 構造 HP instance AC reat key create <?php
/**
* 單例模式
*/
class Site
{
public $siteName;
//靜態實例
protected static $instance=null;
//禁用構造器
private function __construct($siteName)
{
$this->siteName=$siteName;
}
//獲取本例唯一實例
public static function getInstance($siteName=‘微語錄‘)
{
if(!self::$instance instanceof self){
self::$instance = new self($siteName);
}
return self::$instance;
}
}
/**
* 用工廠模式生成單一實例
*/
class Factory
{
public static function create($iteam=‘www.top789.cn‘)
{
return Site::getInstance($iteam);
}
}
/**
* 對象註冊樹
* 1. 註冊set()把對象掛上樹
* 2. 獲取get()把對象取下來
* 3. 註銷_unset()把對象吃掉
*/
class Register
{
protected static $objects=[];
public static function set($key,$object)
{
self::$objects[$key]=$object;
}
public static function get($key)
{
return self::$objects[$key];
}
public static function _unset($key)
{
unset(self::$objects[$key]);
}
}
//使用
Register::set(‘sitetemp‘,Factory::create(‘測試‘));
$obj=Register::get(‘sitetemp‘);
var_dump($obj);
echo $obj->siteName;
PHP經典設計模式