次のインターフェースを検討してください。
interface IFile
{
// Members
};
interface IAudioFile : IFile
{
// Members
};
interface IVideoFile : IFile
{
// Members
};
enum ContentType
{
Audio,
Video
};
interface IProvider
{
HashSet<ContentType> GetSupportedTypes();
IList<IFile> GetFiles(ContentType contentType);
};
ContentType 列挙は冗長だと思います。列挙型の代わりにインターフェイス識別子のようなものを使用する方法はありますか?
インターフェースの設計に関するコメントは非常に高く評価されます。