单例模式
class Site{
//属性
public $siteName;
//本类静态实例
protected static $instance=null;
//禁用构造器
private function __construct( $siteName){
//初始化当前属性
$this->siteName= $siteName;
}
//获取本类唯一实例
public static function getInstance ( $sitName=‘php中文网’){
//判断当前属性是不是当前类的属性
if(!self:: $instance instanceof self){
self:: $instance=new self( $siteName);
}
return self:: $instance;
}
}
工厂模式
//用工程模式来生成本类的单一模式
class Factory
{
//创建指定类的实例
public static function ceate(){
return Site::getInstance(‘www.php.cn’);
}
}
注册树
//注册树包含(
1.注册:set(),把对象挂在树上
2.获取:get(),把对象取下来用
3.注销:_unset():把对象清除
)
class Register
{
//创建对象池。数组
protected static $objects=[]
//生成对象并上树
public static function set( $alias, $object ){
self:: $objects[ $alias]= $object;
}
//从树上取下对象
public static function set( $alias ){
return self:: $objects[ $alias];
}
//从树上清除对象
public static function _unset( $alias){
unset(self:: $objects[ $alias]);
}
}