java里的 懶漢和惡漢模式-----講解


------------java中的惡漢模式

  

public void Test{

   private static Test inte = new Test(); // 內部自己創建好實例,私有屬性(不建議在外部直接調用我們的成員變量)
  //私有的構造方法
   private Test{
//定義私有的構造方法,禁止外部直接創建實例
} public static Test getTest() { return inte; } }///創建一個方法,使外部可以得到此實例 

  

 惡漢模式的優劣:

》》》1,惡漢式 加載類的時候比較慢,運行比較快

》》》2

 1,定義私有的構造方法,禁止外部直接創建實例

 2,內部自己創建好實例,私有屬性(不建議在外部直接調用我們的成員變量)

 3,創建一個方法,使外部可以得到此實例

 

 ---------------------java中的懶漢模式

/** * 懶漢式 加載類的時候比較快,運行時比較慢 *

 * 1,創建私有構造方法,禁止外部直接創建實例 *

*  2,創建私有變量實例化對象,私有屬性(不建議在外部直接調用我們的成員變量)

   3,創建方法,使外部可以調用我們的私有對象實例 

 

public  class Test{


   private Test{}   //定義私有的構造 ,禁止外部直接創建示例

   private static Test test = null;  //創建私有實例

  
  public Test getTest(){  //創建方法,使外部可以調用我們的私有對象實例

    
   returen test;
 
  }


}

    **  這樣也是可以的,不過,如果涉及到多線程,最好加上一個同步鎖(synchronized)可以

     * * 直接在方法上添加 但是每次都要去進行同步,顯然不是最好的。

     * * 最好的當然是下面的,在方法中進行加上

      synchronized * @return */

       public static Singleton getInstance() {

       if (instance == null){

         synchronized (Singleton.class){

      if (instance == null)  {

     instance = new Singleton();

     } } } return instance; }

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM