單例模式

Singleton Pattern

確保一個類只有一個實例,並提供一個全局訪問點。

Example: 資料庫連線


單例模式只會將類別分為一類,即 單例類別 (Singleton)

單例類別會管理實例的產生,並提供存取實例的方法。


優點:
可以確保類別只有一個實例。
可以提供全局訪問點

缺點:
違反單一職責原則
實現單例時,須考慮多線程問題。
因其特殊性,單例模式不容易作測試。


與全域變數的比較:
單例模式可以嚴格地控制客戶如何存取它及何時使用它,
並且具有狀態(可在執行時發生改變)。

ʕ •ᴥ•ʔ:單例模式常被視為一種反模式 (anti-pattern)。
很可能是設計模式中,唯一一個違反單一職責原則