這次,我要創建一個數學問題。我計劃有一本字典,關鍵是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