【发布时间】:2011-02-16 19:01:13
【问题描述】:
我对在类似 CRUD 的操作上应用 Larman 的系统操作合同(来自应用 UML 和模式一书中的 OO 分析)有些困惑。更准确地说,我对后置条件部分感到困惑。
例如,如果我的 CRUD 系统操作如下所示:
createEmployee(employee:Employee),
readEmployee(employeeId:int),
updateEmployee(employee:Employee),
deleteEmployee(employeeId:int)
什么是后置条件,例如,readEmployee 系统操作,或其他一些操作,如 searchEmployees 等?
例如:对于读取操作,系统需要从数据库中读取记录,实例化域对象,在域对象上设置属性值(也设置关系),仅此而已。这是否意味着上面提到了后置条件-实例创建,属性更改等。或者,读取操作没有任何后置条件。这些对我来说都不合逻辑。
我的困惑是关于域模型(状态)和数据库(状态)之间的关系。我只是没有得到上述操作对域模型的影响。我一直认为数据库是保存系统状态的地方。创建员工后,其对象的状态将保存在数据库中...但是域模型状态会发生什么?
【问题讨论】:
标签: oop contract operation system