CRUD のような操作で Larman のシステム操作コントラクト (書籍 Applying UML and Patterns の OO 分析) を適用することについて、多少の混乱があります。より正確には、事後条件部分と混同しています。
たとえば、次のような CRUD システム操作があるとします。
createEmployee(employee:Employee),
readEmployee(employeeId:int),
updateEmployee(employee:Employee),
deleteEmployee(employeeId:int)
たとえば、readEmployee
システム操作やその他の操作searchEmployees
などの事後条件は何ですか?
例:読み取り操作の場合、システムはデータベースからレコードを読み取り、ドメインオブジェクトをインスタンス化し、ドメインオブジェクトに属性値を設定する(関係も設定する)必要があります。インスタンスの作成、属性の変更など、事後条件が上記で言及されていることを意味しますか。または、読み取り操作には事後条件がありません。これはどれも私には論理的に聞こえません。
私の混乱は、ドメイン モデル (状態) とデータベース (状態) の関係についてです。上記の操作がドメインモデルに与える影響はわかりません。データベースはシステムの状態を保存する場所だと常に考えています。従業員を作成した後、そのオブジェクトの状態はデータベースに永続化されます...しかし、ドメイン モデルの状態はどうなるでしょうか?