私が働いている場所では、このテーマについて何度も行ったり来たりして、健全性チェックを探しています。質問は次のとおりです。ビジネスオブジェクトはデータコンテナ(DTOのようなもの)である必要がありますか、それともそのオブジェクトでいくつかの機能を実行できるロジックも含まれている必要があります。
例-顧客オブジェクトを取り上げます。おそらくいくつかの一般的なプロパティ(名前、IDなど)が含まれていますが、その顧客オブジェクトには関数(保存、計算など)も含める必要がありますか?
1行の推論では、オブジェクトを機能(単一責任プリンシパル)から分離し、機能をビジネスロジックレイヤーまたはオブジェクトに配置します。
もう1つの理由は、いいえ、顧客オブジェクトがある場合は、Customer.Saveを呼び出して、それで完了します。オブジェクトを消費している場合、なぜ顧客を救う方法を知る必要があるのですか?
最後の2つのプロジェクトでは、オブジェクトが機能から分離されていましたが、新しいプロジェクトについて再び議論が行われています。どちらがより理にかなっていますか?
編集
これらの結果は、私たちの議論と非常によく似ています。どちらか一方に投票すると、方向が完全に変わります。他の誰かが彼らの2セントを追加したいですか?
編集
回答のサンプリングは少ないですが、ビジネスオブジェクトの機能は単純である限り許容できると大多数が信じているようですが、永続性は別のクラス/レイヤーに配置するのが最適です。これを試してみます。皆様のご意見ありがとうございました...