软考论文记忆助手
押题正文
主题列表
常见问题
新建主题
同步论文
随机抽背
质量检查
导入语料
导出JSON
编辑论文点
所属主题:
论领域驱动设计及其应用
技术点/功能点名称
排序号
在论文中的作用
正文展开点
解决的问题
原有系统中,活动价格校验、订单状态判断和库存处理逻辑分散在页面接口、服务方法和数据库脚本中,业务规则一旦变化,开发人员需要在多个位置查找和修改,容易出现遗漏
为什么选择它
在核心业务规则表达方面,我们采用领域模型设计来解决规则分散和状态控制不清的问题
解决的方法
为解决这一问题,我组织项目组以交易订单为核心建立领域模型,将订单设计为具有生命周期的实体,将价格快照、收货信息、支付方式等设计为值对象,并以订单聚合封装订单创建、支付确认、超时关闭和售后申请等关键行为
效果
通过这种模型设计,核心业务规则集中在领域对象内部,代码结构更接近业务语言,测试人员也能够围绕订单生命周期设计用例,减少了状态流转错误
不使用的劣势/风险
项目位置/技术/需求
在核心业务规则表达方面,我们采用领域模型设计来解决规则分散和状态控制不清的问题
具体的实现
具体实现时,领域模型使用 Java 对象表达业务状态和行为,持久化数据保存到 MySQL,热点状态通过 Redis 辅助支撑
例子
以活动下单为例,系统在创建订单时由订单聚合校验商品状态、价格快照和库存占用结果,订单状态只能通过领域行为发生变化,不能由外部模块随意修改
记忆提示/背诵口诀
在核心业务规则表达方面,我们采用领域模型设计来解决规则分散和状态控制不清的问题 / 领域模型设计
备注
保存修改
返回详情