程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> [javaSE] 單例設計模式,javase例設計模式

[javaSE] 單例設計模式,javase例設計模式

編輯:JAVA綜合教程

[javaSE] 單例設計模式,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版:

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

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved