如何正确的使用领域驱动设计(DDD)?

以一个添加用户场景为例子。

首先前台传来一个user对象,

然后需要对这个对象进行检验,

检验用户名全英文字母,

查询数据库,用户名不存在,

则可以进行插入操作

这样的场景,应用层,领域层应该怎么写,求各位给出具体一点的代码,谢谢。

service对应应用层,调用entity实体层,存储库repository,dao层store。

还有值对象怎么使用。

阅读 4.8k
1 个回答

1.首先在领域层写User的Poco对象,然后在领域层User对象的逻辑中有个CreateUser方法,传入User对象,对传入的User对象的属性赋值到this,然后返回this。
2.在仓储层User仓储中实现两个方法,第一个方法是查询数据库这个用户是否存在,第二个方法是AddUser,这里要注意的是AddUser利用数据访问框架的预添加,而不是完成真正的持久化。
3.在应用服务层中的CreateUser方法中要传递UserDTO对象,首先对UserDTO做检查比如英文,然后将UserDTO属性赋值给User对象属性,然后调用仓储中的检查用户,然后调用领域逻辑中的CreateUser方法,然后使用仓储调用AddUser方法,最后利用数据库框架的持久化方法完成持久化。
4.值对象可以把它理解为就是一个领域对象,有自己的属性和方法,然后把这个值对象做成包含它的领域对象的一个属性。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题