ドメイン駆動設計において、Rails の after_create や after_save 相当の知識はどのオブジェクトに持たせると良いでしょうか?
関連エンティティの更新処理をどこに持たせるべきか
RailsではActiveRecordがエンティティの責務を持っています。(他にも色々持ちすぎですが )
あるエンティティが作成・更新されたときに関連エンティティも絶対に更新しなければならない場合、RailsではActiveRecordの after_create
や after_save
を使って実現することができます。
参考: Active Record コールバック - Railsガイド
Railsではなく、C#やJavaなどの静的型付け言語を採用したドメイン駆動設計において、「あるエンティティが作成・更新されたときに関連エンティティも絶対に更新しなければならない」という知識は、どのオブジェクトに持たせるとよいでしょうか?
候補は、
- エンティティ
- ドメインサービス
- アプリケーションサービス
のいずれかだと思いますが、どれにすべきか悩んでいます。
どなたかアドバイスお願いしたいです。