設計模式筆記 – 單例模式

分類

  • 創建型

模式的目的(定義)

  • 讓一個類管理自己的唯一實例,避免其他類創建自己的實例,並對外提供一個全局訪問點

使用場景例子

  • 某些對象,在整個遊戲裡面只有一個,如果出現了多個的話可能會導致一些奇怪的問題出現的時候,這個對象就可以應用上單例模式
    • 比如玩家的控制器、遊戲流程的控制器等等

類圖

示例代碼

  • 延遲實例化單例
    • public class Singleton{
         private static Singleton instance;
         private Singleton(){}
         public static Singleton GetInstance(){
             if(instance == null){
                 instance = new Singleton();
            }
             return instance;
        }
      }
  • 急切實例化單例
    • public class Singleton{
         private static Singleton instance = new Singleton();
         private Singleton(){}
         public static Singleton GetInstance(){
             return instance;
        }
      }

參考書目

  • 《Head First Design Patterns》Eric Freeman, Elisabeth Robson, Kathy Sierra, Bert Bates