私の理解では、オブジェクト指向デザインの基本的なテナントは、コードとデータの結合としてクラスをモデル化することに焦点を当てるべきであるということです。ただし、日々の開発では、すべてのビジネスロジックを独自のクラスに分離する傾向があります。「データ」は、基本的に実際のコードやロジックを持たない、厳密に制御されたPOCO/DTOに含まれることになります。次に、ビジネスロジッククラスをインスタンス化し、操作を実行するたびに各メソッドにPOCOを渡します。
しかし、これは2つの別々のアプローチのように感じます。実際、後者のアプローチはOOの目的と対立しているようです。
ビジネスロジックは複数のPOCOで機能する可能性があるため、私は常に2つのことを別々に保っていると思いました。さらに、 POCOのデータの検証を強制しないことで、テスト用のPOCOの準備が簡単に見えたため(内部クラスの状態やカプセル化などを気にする必要がないため)、単体テストが容易になりました。これらの理由を振り返ってみると、弱いようです。
私は2つのアプローチの比較/対比を探しています。具体的には、なぜ「ダム」POCOを作成することが最近の道であると思われるのですか?データとビジネスロジックを1つのクラスにまとめてみませんか?オブジェクト指向設計の本来の目標を放棄していますか?
ありがとう!