簡體   English   中英

靜態類存儲為屬性

[英]Static class stored as a property

我有一個稱為State的靜態抽象類,它定義了抽象方法start()update() ,然后有多個實現State的類。

現在,我想創建一個類,讓我們稱之為StateMachine ,它具有一個名為currentState的屬性。 我希望能夠將此屬性設置為指向實現狀態的靜態類,以便可以運行currentState.update()之類的東西。

現在是我的問題:

物業的類型應該是什么? 我會說國家,但我覺得還有更多的東西。 另外,我將如何設置屬性?

currentState = ClassThatImplementsState;

一個有效的事情嗎?

編輯:好的,所以我才知道您不能從C#中的靜態類繼承。 我想知道一種做類似的事情的方法,這種方法可以使我既有多態性,又不必實例化狀態對象。 有這樣的事嗎?

如果State靜態類,則不能有多個“實現”(即從其派生)的類。 另一方面,當它是抽象類時,可以從中派生。 但這不可能兩者兼而有之。

編輯:我認為您真正想要的是Singleton,而不是抽象或靜態類。 有關如何在C#中實現Singleton模式的提示,請參見http://msdn.microsoft.com/zh-cn/library/ff650316.aspx

編輯2:如果您的應用程序是多線程的,請確保使用單例模式的線程安全變體。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM