goft
搜索文档…
领域服务层
基本概念
实现特定于某个领域的任务。当某个操作”不适合”放在聚合(实体)或值对像上时,那么可以使用领域服务
操作内容
1、操作多个聚合根
2、也可以调用仓储层
3、代码可以相对灵活一些
4、命名一般要能直接描述出该代码业务的功能
譬如我们认为(也许你不这么认为)用户登录这块不方便放在聚合方法中

于是编写一个领域服务

1
type UserLoginService struct {
2
userRepo repos.IUserRepo
3
}
4
func(this *UserLoginService) UserLogin(userName string,userPwd string ) (string,error) {
5
user:=this.userRepo.FindByName(userName)
6
if user.UserId>0{ //有这个用户
7
if user.UserPwd==utils.Md5(userPwd){
8
//记录登录日志
9
return "1000200",nil
10
}else{
11
return "1000400",fmt.Errorf("密码不正确")
12
}
13
}else{
14
return "1000404",fmt.Errorf("用户不存在")
15
}
16
}
Copied!
还是那句话,领域驱动根据业务不同 允许有不同的理解
最近更新 1yr ago
复制链接
内容