领域驱动设计 DDD

领域驱动设计 DDD,第1张

Domain Driven Design

(一)Domain Primitive
DP
Primitive 的定义是:不从任何其他事物发展而来,初级的形成或生长的早期阶段。类比Java中的int,string
Domain Primitive 是一个在特定领域里,拥有精准定义的、可自我验证的、拥有行为的 Value Object 。

案例:
接口语义、参数校验
核心业务逻辑清晰度
单元测试可行性

DP:
三原则

领域:业务问题的范畴
将一个大的业务划分成多个领域

案例:
输入客户姓名、手机号,根据手机号的归属地和所属运营商,将客户群体分组。
流程:
输入用户名、手机号,校验参数,获取手机号的归属地和运营商编号,获取分组编号,构建客户对象存入数据表。
归属地、运营商是查询出的,再查询出分组编号。
数据表存入的是姓名、手机号、分组编号,并不需要归属地和运营商。

修改目标:

  1. 接口语义明确,可扩展性强,一定的自检性
  2. 参数校验逻辑复用,内聚
  3. 参数校验异常和业务逻辑异常解耦

自定义PhoneNumber类

核心业务逻辑清晰度
业务:注册
但是,注册中包括获取归属地编码和运营商编号,使得业务并不纯粹。
胶水逻辑

改造:
第一种、改造接口的入参
第二种、根据手机号获取归属地和运营商编号,应该放在PhoneNumber类中

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/723135.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-26
下一篇 2022-04-26

发表评论

登录后才能评论

评论列表(0条)

保存