*设计了23中设计模式
单例设计模式:解决一个类在内存中只存在一个对象
构造函数私有化
在类中创建一个本类对象
提供一个方法可以获取该对象
class Single{
private static Single single;
public int num=1;
private Single(){
}
public static Single getInstance(){
if(single==null){
single=new Single();
System.out.println("对象只有一个");
}
return single;
}
}
public class SingleDemo {
/**
* @param args
*/
public static void main(String[] args) {
Single s1=Single.getInstance();
s1.num=2;
Single s2=Single.getInstance();//只输出一次 "对象只有一个"
System.out.println(s2.num);//此时输出2 说明是同一个对象 } }
PHP版:
<?php
class Single{
private static $single;
public $num=1;
private function __construct(){ }
public static function getInstance(){
if(Single::$single==null){
Single::$single=new Single();
echo "对象只有一个";
}
return Single::$single;
}
/*覆盖PHP的魔术方法*/
private function __clone(){ } }
class SingleDemo{
public static function main(){
$obj1=Single::getInstance();
$obj1->num=2;
$obj2=Single::getInstance();//只输出一次 "对象只有一个"
echo $obj2->num;// 此时输出2 说明是同一个对象
}
} SingleDemo::main();