如果我有以下通用接口:
public interface IValidator<T>
{
Boolean IsValid(T entity_);
}
我可以通过以下方式使用它吗?这是针对面向对象编程指南吗?
public PathValidator : IValidator<String>
{
}
答案 0 :(得分:6)
使用Interfaces是否违反任何最佳做法?
不,这很好并且很常见(假设你的界面不是空的并且有一个方法签名,如bool IsValid(T entity)
)。
是什么让你认为它应该是?如果您告诉我们,我们可以详细说明。
答案 1 :(得分:0)
原因不是,只需看看像IList这样的通用集合接口。
答案 2 :(得分:0)
如果这实际上是接口的主体,那么拥有一个没有合同的接口通常不是一个好主意(也就是说,它不需要你实现任何方法)。通常这表明您的设计存在问题。
答案 3 :(得分:0)
空接口(Marker接口)通常是不好的做法,因为你应该使用Attribute。
但如果它只是空的,因为你省略了它来简化例子,那么它对我来说看起来很好。