我对使用Larman的系统操作合同(来自应用UML和模式的书中的OO分析)对类似CRUD的操作有些困惑。更确切地说,我对后置条件感到困惑。Larman的系统操作合同 - CRUD示例
举例来说,如果我有CRUD系统操作看如下:
createEmployee(employee:Employee),
readEmployee(employeeId:int),
updateEmployee(employee:Employee),
deleteEmployee(employeeId:int)
这将是对后置条件,例如,readEmployee
系统操作,或一些其它操作喜欢searchEmployees
等?例如:对于读取操作,系统需要从数据库中读取记录,实例化域对象,在域对象上设置属性值(也可以设置关系),就是这样。这是否意味着后置条件如上所述 - 实例创建,属性更改等。或者,读操作没有任何后置条件。这听起来对我来说都不合逻辑。
我的困惑是关于领域模型(状态)和数据库(状态)之间的关系。我只是没有得到上述操作对域模型的影响。我总是认为数据库是一个保存系统状态的地方。创建员工之后,其对象的状态将保留在数据库中......但是域模型状态会发生什么情况?