这次,我要创建一个数学问题。我计划有一本字典,关键是Levels enum {Easy,Medium,Hard},值应该包含关于如何创建问题的一些配置。留下一个空的界面是一个好的做法吗?
例如:
BinaryProblemConfiguration
+ Bound1 : Bound<int>
+ Bound2 : Bound<int>
束缚具有两个属性:min和max。
其他类型的问题不需要界限,但需要其他数据。
所以,我在想创建一个名为IConfiguration的接口。
public interface IConfiguration {}
而具体的配置应该是:
public class BinaryProblemConfiguration : IConfiguration
{
public Bound Bound1 {get;set;}
public Bound Bound2 {get;set;}
}
public class AnotherProblemConfiguration : IConfiguration
{
// other stuff
}
的想法是有一个叫ConfigurationLevels字典。这是一个很好的做法,将界面留空或者意味着我的设计有问题吗?
如果您确定界面永远不会有任何方法,它的用途是什么?如果它只是将某个类标记为某个“类型”,请使用属性。 – millimoose 2012-01-27 20:44:32
请参阅http://en.wikipedia.org/wiki/Marker_interface_pattern – nulltoken 2012-01-27 20:45:13
C#中的属性和Java中的注释提供了用于元数据的手段,使“标记接口”不再显示。 – diggingforfire 2012-01-27 21:10:40