我真的不知道如何標題這個問題,但基本上我有一個這樣的接口:使用Interface +抽象類的繼承設計。良好的做法?
public interface IFoo
{
string ToCMD();
}
幾個absract類的其中實現的IFoo,如:
public abstract class Foo : IFoo
{
public abstract string ToCMD();
}
public abstract class Bar : IFoo
{
public abstract string ToCMD();
}
然後繼承的類Foo和酒吧:
public class FooClass1 : Foo
{
public override string ToCMD()
{return "Test";}
} ///there are about 10 foo classes.
public class BarClass : Bar
{
public override string ToCMD()
{return "BarClass";}
} ///about the same for bar classes.
我這樣做,這樣,當我有喜歡我的自定義列表:
public class Store<T> : List<T> where T : IFoo {}
然後,我可以限制進入它的類型,但通過接口,它仍然會採取任何類型的IFoo。
喜歡的東西:
Store<Foo> store = new Store<Foo>(); //Only Foo types will work.
store.Add(new FooClass1()); //Will compile.
Store<IFoo> store = new Store<IFoo>(); //All IFoo types will work.
store.Add(new FooClass1()); //Will compile.
store.Add(new BarClass()); //Will compile.
我的問題是:這是要對這個的好方法嗎?或者,還有更好的方法?
編輯:圖片 - >
我不確定使用空接口是個好主意。是嗎? – 2008-12-18 01:56:30