你的位置:首页 > Java教程

[Java教程][javaSE] 单例设计模式


四人帮设计了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版:

<?phpclass 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();