加载中...

值对象(Value Object)是领域驱动设计与《企业应用架构模式》中都描述过的建模构件:它没有唯一标识,完全由属性值定义,两个值对象只要属性相等即视为相等,典型例子有金额(数值+币种)、日期区间、地址、坐标。
值对象通常设计为不可变(Immutable):修改即产生新对象,从而天然线程安全、可自由共享;相关的业务行为(如金额相加、区间是否重叠)应封装在值对象内部,而不是散落在服务层。
实体(Entity)靠标识区分,生命周期内属性可变;值对象靠值区分,可被整体替换。"用值对象包装基本类型"也能避免把电话号码、邮箱都写成 String 的原始类型偏执问题。
多用值对象是让领域模型精确、代码自解释的重要手段。

登录 后参与讨论
暂无讨论,来发表第一条评论吧