我有一个继承自接口(IDataSource)的数据库类和一个代表用户的类。
我真正研究的是,哪个类负责从数据库获取用户数据 - 用户类是否应该定义一个方法,该方法需要数据库类/ IDataSource的实例来执行查询,或者数据库类应该实现接收用户数据并返回用户对象的方法?
这只是一个普遍的问题,我期待着阅读一个有用的答案。
编辑:
也许s.o.解释以下工作原理:
class ContactValidator : IValidator
{
public Boolean Validate(Contact contact) { ... /* check Name is unique in DB */ }
}
IValidator会是什么样子?
据我所知,它看起来会像这样:
public interface IValidator{
bool Validate(???)
}
我不能将“Contact”设置为接口的参数,否则每个实现接口的类都需要Contact作为参数。
是否可以将“object”定义为没有编译器抱怨参数类型的参数?
@ Active Records vs. Repository - pros and cons?
我发现的唯一解决方案是:
public interface IValidator<T> {
bool Validate(T obj)
}
还是有另一种方法让它适用于多个班级吗?