繁体   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