Fowlerの本Refactoringはコード臭として "データクラス"をリストしています。しかし、メソッドをユニットテストするときに、値オブジェクトを渡します。クラス内の状態を設定したり調べたりするよりもはるかに簡単にテストを行うことができます。「データクラス」は実際にコードのにおいですか?
テスト駆動型開発方法論は、テストを書くのが簡単であるということは、インターフェイスがきれいであり、その方法が結束しているという考え方に依存していると私は思います。純粋に等価のメソッドは、テストするのが最も簡単で、再利用するのが最も簡単です。では、なぜデータクラスが悪いのですか?推奨される修正は、ビヘイビアをデータクラスに移すことですが、なぜ値オブジェクトにビヘイビアが必要なのでしょうか?
ドメインモデルが自分のドメインに限定されていない場合はどうなりますか?これにより、データベースから取得した企業データモデルのエンティティを使用しなければならないということです。エンティティを表すデータクラスがそれ自身の振る舞いをしてはいけないのではなく、その責任をサービスオブジェクトに委譲していますか? –
答えはちょっと長いので、私は答えを編集しました。 Btw優秀な質問。 – aquaraga