2
我想了解什麼層次將是最好的繼承描述如下。到目前爲止,我有如下:來自通用接口的通用抽象基類
public interface IManager<T> where T : ISomeObject
{
bool Add(T o);
bool Remove(T o);
bool Update(T o);
}
但後來我想每個派生類有一個參數化的構造函數。所以我去了:
public abstract class Manager<T> : IManager<T> where T : ISomeObject
{
protected readonly INeededObject obj;
protected Manager(INeededObject o)
{
obj = o;
}
}
任何想法應該如何去解決這個設計問題?提前致謝。
我不知道,但有兩個在'接口定義什麼'T' '和'抽象類'感覺有點奇怪和錯誤。 – Kunal 2013-03-22 23:44:31
@Kunal你不是在兩個地方定義'T'。 'T'只是一個參數名稱 - 有點像函數參數。你可以在兩個地方給「T」任何你想要的名字,例如班級經理'。 'T'只是一個慣例。 –
2013-03-23 00:10:32
是的,我理解泛型的用法,但是我仍然認爲在'interface'和'abstract class'中冗餘地指定'T'類型是不是沿着OOD線的某處。我同意你的做法是做參數化構造函數的一種方法,但我的編輯就是我正在尋找的東西(除非存在缺陷)。 – Kunal 2013-03-23 00:29:59