0

我有一个继承自接口(IDataSource)的数据库类和一个代表用户的类。

真正让我感到困惑的是,哪个类负责从数据库中获取用户数据——用户类是否应该定义一个需要数据库类/ IDataSource 的实例来执行查询的方法,或者数据库类是否应该实现一个方法接收用户数据并返回用户对象?

这只是一个一般性问题,我期待着阅读一个有用的答案。

编辑:

也许这样解释以下是如何工作的:

class ContactValidator : IValidator
{
public Boolean Validate(Contact contact) { ... /* check Name is unique in DB */ }
}

IValidator 会是什么样子?

据我所知,它看起来像这样:

public interface IValidator{
bool Validate(???) 
}

我不能将“联系人”设置为接口的参数,否则每个实现接口的类都需要一个联系人作为参数。

是否可以在编译器不抱怨参数类型的情况下将“对象”定义为参数?

@ Active Records vs. Repository - 优点和缺点?

我找到的唯一解决方案是:

public interface IValidator<T> {
bool Validate(T obj)
}

还是有另一种方法可以让它为多个班级工作?

4

0 回答 0