DDD碎片记录 02. 服务,实体,值对象

计算机软件开发 2024-9-24 22:34:05 127 0 来自 中国
服务:在领域对象之外的操作与行为,接受用户的请求和执行某些操作

当用户在系统界面中进行操作时,会向系统发送请求,服务接受用户的这些请求,然后根据需求执行相应的方法,所有操作都完成后,再将实体或值对象中的数据之久化到数据库中。
比如:当用户下单时,就会从前端发起下单请求,该请求被订单service接收到,并执行下单的响应操作,在执行过程中,订单service会对订单实体中的数据进行校验,完成各种数据操作,最后将其保存到数据库中。
实体:通过一个唯一标示字段来区分真实世界中的每一个个体的领域对象

例如,在学籍管理系统中的学员对象,就是一个实体,它通过标示字段:学员编号,将每一个学员进行区分,通过某个学员编号就能唯一的标示某个学员,并且这个学员有许多属性,如姓名,性别,年龄等,这些属性也是随着时间不断变化,这样的设计就叫做实体。
值对象:代表真实世界中那些一成不变的,本质性的事物,这样的领域对象叫做“值对象”

地理位置,行政区划,币种,行业,职位等
可变性是实体的特点,不可变性是值对象的本质
例如,北京是个城市,架构师是个职务,软妹币是个币种。
在线订单系统中,菜单既可以设计成实体,也可以设计成值对象
按照值对象设计:所有餐厅的黄焖鸡米饭在系统中只有一条记录,所有餐厅的黄焖鸡米饭都引用这条记录。
按照实体设计:每个餐厅的黄焖鸡米饭都是不同的,比如价格不同,那么将其设计成有多条记录,有各自不同的id,每个餐厅都是用自己的黄焖鸡米饭。
服务,实体,值对象是DDD的基本元素
您需要登录后才可以回帖 登录 | 立即注册

Powered by CangBaoKu v1.0 小黑屋藏宝库It社区( 冀ICP备14008649号 )

GMT+8, 2024-12-4 16:21, Processed in 0.144907 second(s), 33 queries.© 2003-2025 cbk Team.

快速回复 返回顶部 返回列表