Mar*_*kus 2 repository-pattern
我正在为我的应用程序使用存储库模式.我有一个类用户.用户通过电子邮件识别.UserRepository包含方法CreateUser(用户用户).有一条业务规则说用户应该拥有唯一的电子邮件.
我想实现一个事务,首先检查是否正在使用电子邮件,如果没有,则创建用户.我应该在哪里放置负责检查电子邮件唯一性的代码?
这绝对是一个商业规则; 这是商业逻辑.我认为将此检查放在我的UserRepository实现中是不正确的.
这种事情通常在(1)服务或(2)作为数据库约束(并且经常两者)直接进入模式.
使用服务,您不直接从客户端代码访问存储库; 您调用的服务可以为您执行有用的操作.
例如,类似于:
public class UserService : ... {
private Repository<User> _userRepository;
public void CreateUser(User u) {
// Verify that the user's email is unique.
if ( ... ) {
_userRepository.Create(u);
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
255 次 |
| 最近记录: |