私はDDDがタスクベースのUIでうまくいくことは知っていますが、私はAnemic Domain Model(ビジネスロジックのない多くのセッター)があるレガシーアプリケーションをリファクタリングしています。DDDを使用してエンティティ(CRUD)とドメインイベントを更新する方法
最初のステップの1つは、モデルに到達させてドメインイベントを追加することでした。モデルを作成するためのイベント(コンストラクタ内のTaskCreated
)を追加して(TaskRemoved
)簡単なプロセスですが、私はモデルを更新するのに苦労しています。
PUT /tasks/{id}
エンドポイントを持つRESTful APIがあります。ボンネットの下フレームワークは、DTOオブジェクトへの応答のボディをマッピングして、一つ一つのセッターを呼び出します。
task.setText('new text');
task.setStartDate(newStartDate);
// and so on
私はタスクが更新されたときに、いくつかのイベントを聞くと、例えば、それを更新したいですGoogleカレンダー。 イメージングできるので、各setter
(TextChanged、StartDateChanged)のイベントを記録してそれらのすべてを聴くと、私は、私が望むものではないGoogle APIへの多くのAPIコールを終了します。
質問は:正しい方法で更新操作をどのように行う必要がありますか?私はsetters
のすべてのコールをupdate(newData)
コールで置き換えて、そこにただ1つのドメインイベントをディスパッチすべきですか?どのようにするだけタスクが更新された後googleカレンダーにAPI呼び出しを行うには?
「貧血ではないドメインモデルでは、実際にはタスク更新内でイベントを定義します」 と非貧血モデルのコードは何ですか?私は、同時にいくつかのフィールドを更新する方法と、これが良いアイデアかどうかを意味します。 –