📙
Design Pattern
  • Introduction
  • 0. About Design Pattern
  • 1. Singleton
  • 1.1 Eager Singleton (a.k.a Pessimistic Lock Singleton)
  • 1.2 Lazy Singleton (a.k.a Optimistic Lock Singleton)
  • 1.3 理解Singleton
  • 1.4 Cache Singleton
  • 1.5 Extend Singleton
  • 1.6 Double Check and Lock Singleton
  • 1.7 Lazy Initialization Holder Class
  • 1.8 Enum Singleton
  • 1.9 Conclusion
  • 2. Factory
  • 2.1 Simple Factory
  • 2.2 Factory
  • 2.3 Abstract Factory
  • 2.4 Conclusion
Powered by GitBook
On this page

Was this helpful?

1. Singleton

Previous0. About Design PatternNext1.1 Eager Singleton (a.k.a Pessimistic Lock Singleton)

Last updated 5 years ago

Was this helpful?

定義: 保證一個類別僅有一個實例, 並提供一個存取該類別實例的全局存取點

結構與說明:

Singleton: 負責創造Singleton類別自己的唯一實例, 並提供一個getInstance()方法, 讓外部來存取這個類別的唯一實例.

認識singleton pattern:

  1. Singleton pattern的功能: 用來保證這個類別在runtime期間只會被創造一個類別實例, 並提供一個全局唯一存取這個類別實例的存取點.

  2. Singleton pattern的範圍(即在什麼範圍下是單例): 是一個classloader及其子classloader的範圍, 以eager singleton來說, 會在singleton類別被JVM加載的時候即初始化該類別的實例, 由於現在一般來說, 一個JVM只有一個classloader, 所以也可以說是在一個JVM的範圍內(比較不嚴謹的講法).

  3. Singleton pattern的命名: 一般建議取得單例的方法命名為: getInstance()