我一直在思考的通用架构问题
如果我有一个接口(interface)和 5 个实现该接口(interface)的类,但一个类不需要实现其中一个接口(interface)成员,我应该:
- 为该类创建一个单独的接口(interface)
- 实现 原始界面,但将方法留空
- 实现原来的接口(interface),对不需要的方法做一些标记 (例如过时的属性)
一个例子是,如果我有一个接口(interface) IRepository 和 5 个实体的 5 个独立存储库,但对于一个实体我不希望能够更新记录。
我目前支持选项 3,但过时的描述似乎不正确。
有什么想法吗?
顺便说一句,我知道这是相当广泛和客观的,但我想听听一些关于最佳方法的意见。
最佳答案
您可以创建另一个接口(interface)并继承您实际使用的接口(interface)
public interface IReadOnlyRepository
{
void Read();
}
public interface IRepository : IReadOnlyRepository
{
void Write();
}
然后您可以为您不希望完整实现的类使用“基础”接口(interface)IReadOnlyRepository
。
或者,当用户试图从未实现 C 的类中调用 C 时,使用编号 3。抛出 NotImplementedException
/InvalidOperationException
或其他相关异常。
希望对您有所帮助。
关于c# - 实现不必要的接口(interface)成员或创建新接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18762268/