fea*_*net 2 language-agnostic oop design-patterns
在编写我当前的项目时,我已经为所有对象创建了接口.我认为这被认为是良好的编码实践.
我基本上最终得到了一堆定义非常简单的类的接口.
例如:
public interface IUser
{
int Id { get; }
string DisplayName { get; }
}
Run Code Online (Sandbox Code Playgroud)
我真的没有意识到在这里有这些.我现在另外在几个地方遇到问题,我想做一些事情,比如定义运算符重载,这是我在接口级别无法做到的.
我很想通过我的项目并删除所有这些接口(我会为我的存储库和其他定义更复杂行为的东西保留接口),但是我会有点去删除100行的代码以及随之而来的所有重构.
我想听听其他用户的意见.是否有任何目的来定义基本对象上的接口?将它们放在那里是否有任何伤害,即使它们不是真的有必要?
如果接口没有添加值,则删除它们.当谈到实体上的接口,除非它们有共同点,我认为将它们放在接口后面并没有增加价值.
如果它们共享共同点,则允许您使用通用算法来处理它们.
我经常看到"实体"扩展包含审计信息的基类.
interface IAuditBase{
int Id { get; }
string UpdateDate{ get; }
//etc.
}
Run Code Online (Sandbox Code Playgroud)