1
有人能告訴我爲什麼單身人士打破/關閉的原則? 是否因爲從該類繼承可能存在問題?爲什麼單身人士打破/關閉原則?
有人能告訴我爲什麼單身人士打破/關閉的原則? 是否因爲從該類繼承可能存在問題?爲什麼單身人士打破/關閉原則?
對於一個類是「打開」的,它必須有可能從它繼承。繼承是一種「是一種」關係。如果您從單例類繼承,那麼由於「is-a」關係,子類的實例也是父類的實例,這意味着您可以突然擁有多個單例類的實例。
如果單例類禁止繼承,它不再是「開放」的。
如果單例類允許繼承,並且對於擴展是「打開」的,那麼它不能再強制單例模式。
有兩個問題與Singleton模式:
難道一個singleton實現一個接口來解決這兩個問題嗎?該接口保持打開狀態以進行擴展,而取決於接口的客戶端不需要知道它們都是在抽象背後使用單例實例。 – jaco0646
如果它具有接口並且'Instance'可以替換,那麼這將不是Singleton模式,並且'Instance'屬性仍然會在靜態類中定義,這會導致DIP被違反。 – Steven