1. 程式人生 > 遊戲 >《榮耀戰魂》Y5S3“暴風雨”公佈 9月9日正式上線

《榮耀戰魂》Y5S3“暴風雨”公佈 9月9日正式上線

一、單例模式:

1.在單例類的內部實現只生成一個例項,同時讓它提供一個靜態的getInstance()唯一例項工廠方法供使用者訪問;

2.為了防止在外部對其例項化,將其建構函式設計為私有(通過new例項化的時候報錯);

3.在單例類內部定義了一個Singleton型別的靜態物件,作為外部共享的唯一例項(外部只能通過此方法來例項化)。

二、單例模式——醉漢式

/**
 * 作者:雪靈鈺
 * 時間:2021/9/8 19:22
 * 描述:單例模式-醉漢式
 */
public class Singleton {

    //1.私有的靜態變數
    private static Singleton singleton= new
Singleton(); //2.私有的構造器 private Singleton() {} //3.公共的靜態例項化方法 public static Singleton getInstance(){ return singleton; } }

三、單例模式——懶漢式

/**
 * 作者:雪靈鈺
 * 時間:2021/9/8 19:42
 * 描述:單例模式-懶漢式
 */
public class Singleton2 {
    //1.私有的靜態變數
    private static Singleton2 singleton= null;

    
//2.私有的構造器 private Singleton2() {} //3.公共的靜態例項化方法 public static Singleton2 getInstance(){ if (singleton == null) { singleton=new Singleton2(); } return singleton; } }

三、測試結果

/**
 * 作者:雪靈鈺
 * 時間:2021/9/8 19:26
 * 描述:建立單例測試結果
 */
public class SingletonTest {
    
public static void main(String[] args) { Singleton instance = Singleton.getInstance(); Singleton instance2 = Singleton.getInstance(); System.out.println("醉漢式:"+(instance==instance2)); Singleton2 instance3 = Singleton2.getInstance(); Singleton2 instance4 = Singleton2.getInstance(); System.out.println("懶漢式:"+(instance3==instance4)); //RedisTest為自己隨便寫的類,用於做對比 RedisTest test = new RedisTest(); RedisTest test2 = new RedisTest(); System.out.println("對比與普通類:"+(test==test2)); } }