关于规格

业务规则应该放在规格(or规则)里,而不应该放在服务里.
那么规格是不是除了实体,值对象,服务之外的第4种元素呢? 还是说规格有时候是实体,有时候是值对象呢?
[该贴被Antinomy于2008-12-18 16:17修改过]

我觉得规格就是一大堆的显示的谓词逻辑和一堆业务异常。
说它是实体是不可能的,实体就是实体,不可能只变成一个约束。
说它是服务,暂且定为服务吧,那这个服务的服务域也太窄了,除了约束实体和值对象它什么都不干。
像约束一种运输工具有没有满载,一般是用总重量和最大载重量来约束,这本可以写进实体里isFull方法,但是假设有时候有一些特殊规则,虽然没达到最大载重量,也认为是满载了,不能再加了,这时候实体就不能很好的控制这样的变化,因为这种约束不完全依赖这个实体了,它还依赖其它的实体、服务或规则,如果仍旧放进实体里,这个实体很快就不能被人类控制了,它放进了太多本不属于它自己的东西,这时候就需要显示的拿出这些约束,变成一个规格。这个规格是可以用自然语言描述的,比如用drools处理,但是一个定义良好的规格用java本身处理更合适。

感谢2F的回复,所以我才会有规格是第4种元素的想法.

说它是服务,暂且定为服务吧,那这个服务的服务域也太窄了,除了约束实体和值对象它什么都不干。

--------了解,其实就是 衡量是否到达某种状态的标准吧。 用服务来实现它