【发布时间】:2012-10-16 14:06:28
【问题描述】:
我有一个界面,它描述了一种对在某个存储库中查找的某些项目执行某些操作的方法。
我看到了两种创建该界面的方法。
public interface IService<T> where T : class
{
void Action<TSource>(int id, TSource source, Action<T> action)
where TSource : IRead<T>;
}
对
public interface IService<T> where T : class
{
void Action(int id, IRead<T> source, Action<T> action);
}
那么,哪一个是最好的,为什么?
【问题讨论】:
-
你想在这里实现什么?问题是什么?答案完全取决于您的问题。
-
对你来说有什么不同?如果您不需要“类”约束(因此您可以接受值类型),那么它们是等价的。
-
没有实际问题。然而。像往常一样,我事先要求避免将来出现问题,并对 C# 有更完整的了解。
-
...你预先设计所有东西并且不管什么都不会改变的时代已经过去了......现在你只根据需要做尽可能多的设计,注意 YAGNI(你不需要它),KISS(保持简单愚蠢)并灵活工作并“拥抱”(嗯......不是真正拥抱而是期待)改变......所以不要担心,并采取更简单的第二个版本跨度>
-
我认为这是一个合理的设计问题,即使没有考虑特定的场景。
标签: c# generics methods interface repository