如何從單例類繼承到需要相同功能的其他類? 這樣會有什麼意義嗎?Singleton Inheritance
6
A
回答
0
有人隨時糾正我,但我的方式的理解,並與這一次的錯誤:
public class BaseClass
{
protected static List<string> ListOfSomething { get; set; }
}
public class ChildClass
{
protected static List<int> ListOfSomethingElse { get; set; }
}
public class AnotherChildClass
{
protected static List<int> ListOfSomethingElse { get; set; }
}
兩個子類的將共享相同ListOfSomething
,他們不會有他們自己的副本。在所有兒童之間將共享相同的靜態。這是單身人士行爲和繼承的蛻變。絲毫說...你不應該這樣做,你可能會碰到沿着這些線。
如果你不是在談論這樣的事情......我不確定你在說什麼單身人士,而且一個例子會有很大幫助,因爲單身人士有很多利基用途。
11
Jon Skeet wrote about this回來。雖然使用嵌套的內部類沒有什麼需要,但可以實現與Singleton的繼承的好處的一些。它沒有無限的可擴展性,它只是一種讓Singleton在運行時選擇自己的實現的技術。
實際上,從Singleton繼承並沒有多大意義,因爲Singleton模式的一部分是實例管理,並且一旦您已經擁有基本類型的物理實例,那麼覆蓋任何此類實體就太晚了在派生類型中。即使你可以,我懷疑它可能會導致難以理解,甚至更難以測試/維護的設計。
3
您可以從單例繼承並使用模板(C++)或泛型(C#.NET)進行「重用」或一些微調。
我已經張貼在我的博客(www.devartplus.com)在這個問題的帖子的意甲:
1)Basic singleton inheritance在C#.NET
在C#.NET2)線程安全的單繼承
3)C++中的幾個單例實現
歡迎您訪問這些鏈接,並分享您的所有意見。 祝你好運。
相關問題
- 1. ReboundPanel Inheritance
- 2. Repository Inheritance
- 3. C++ inheritance
- 4. Javascript:Protoypal Inheritance
- 5. RequireJS和Prototypal Inheritance
- 6. Prototypal Inheritance and instaceof
- 7. android java inheritance
- 8. java-progression inheritance
- 9. JPA Inheritance Persistance
- 10. JPA Inheritance Multiple DiscriminatorValues
- 11. Codeception Cest Inheritance
- 12. Android Parcelable and inheritance
- 13. PHP Doctrine Inheritance
- 14. boost :: shared_ptr和Inheritance
- 15. python,inheritance,super()方法
- 16. Single Table Inheritance&ActiveRecord Associations
- 17. css using:not()on inheritance class
- 18. Coffeescript Backbone extends/Class Inheritance
- 19. scala value class multiple inheritance
- 20. Javascript Inheritance with new Arguments
- 21. `user-select none` without inheritance
- 22. 當Singleton不是Singleton?
- 23. Objective-C使用#import和inheritance
- 24. Javascript Prototypal Inheritance懷疑二
- 25. Table-per-hierarchy and inheritance implementation issue
- 26. FOSUSER Bundle with many USer + Inheritance
- 27. Spring bean singleton vs singleton pattern
- 28. 匕首2 Singleton vs Real Singleton
- 29. Swift Singleton
- 30. StructureMap singleton