PHP设计模式的单模式代码
php设计模式的单例,供大家参考,详情如下< PHP
* PHP设计模式单例模式
* /
类水果{
私有静态instancemap美元=阵();
用于单个实例的受保护吸气剂
保护静态函数getsingleton($ className){
确保/单模式,不能从控制器和克隆实例化
如果(!isset(自::instancemap美元{ $ className })){
对象=新类名美元美元;
确保该对象从Singleton继承。
如果(元对象是水果){
自::{ } =类名instancemap美元美元美元的对象;
var_dump(元对象);
{人}
把singletonexception(类classname'do美元不能继承Singleton!;
}
}
回归自我::{ } instancemap美元美元的类名;
}
保护外部构造函数的保护构造函数
保护功能(__construct){ }
/ /否定克隆singleton对象
公共最终功能__clone(){
trigger_error(这是不可复制的独生子女,e_user_error);
}
}
苹果类扩展水果{
保护rndid美元;
公共功能__construct(){
美元-> rndid = rand();
}
公共功能whatami(){
echo'i是苹果('。美元-> rndid'。);
}
公共静态函数getInstance(){
/ /回声get_class();
返回:水果:getsingleton(get_class());
}
}
苹果苹果{扩展类
公共功能whatami(){
echo'i是格林艾普('。美元-> rndid'。);
}
公共静态函数getInstance(){
返回:水果:getsingleton(get_class());
}
}
apple1美元=苹果::getInstance();
/ / var_dump($ apple1);
苹果::apple2美元= getInstance();
apple1美元-> whatami(回声); / / should'i是苹果(若干)
apple2美元-> whatami(回声); / / should'i是GreenApple(若干)
apple1美元=苹果::getInstance();
苹果::apple2美元= getInstance();
确保/单模式
apple1美元-> whatami(回声); / / should'i是苹果(如上数目相同)
apple2美元-> whatami(回声); / / should'i是GreenApple(如上数目相同)
美元=克隆 / / / apple1美元;这就失败了
$ =克隆 / / / apple2美元;这就失败了
以上是本文的全部内容,希望能帮助您学习php程序设计。