考慮我有一個基本接口IInterface
。因此,我必須實施IInterface
,ClassA
和ClassB
。如何處理類別層次結構,其中某些子類是IDisposable而其他類不是?
public interface IInterface
{
}
public class ClassA : IInterface
{
}
public class ClassB : IInterface, IDisposable
{
}
注意ClassB
是IDisposable
和ClassA
不是。現在,如果我想創建一個由工廠填充的List<IInterface>
,我該如何處理一次性元素的處理?是否有必要創建一個單獨的List<IDisposable>
,然後在構建對象(或構建之後)時過濾列表?我應該只是IInterface
IDisposable
與基礎抽象類與默認實現(直到C#7添加默認接口實現)?
我不知道什麼是所有的最簡單的利用和最清晰的未來閱讀。看起來,將潛在的孩子可能被丟棄的所有界面變爲IDisposable
是一種潛在的煩人做法。此外,它需要具有空置處理實施的基地,這似乎也不太理想。
是的,使IInterface:IDisposable。我會放棄抽象基類並明確地實現它們。 –
這是C#中的一個擴展性問題,因此沒有「理想」的答案。在使用類型特性/特性的語言中,你可以在事實之後「接觸」一個接口定義,這使得這些東西變得更清晰。在C#中,我認爲使IInterface:IDisposable是最好的中間立場。 –