this definitionによると、貧血ドメインモデルのファウラーの概念は次のとおりです。貧血ドメインモデルは、ドメインモデルのユーティリティ/サポートクラスを「ヘルパー」として使用できないことを意味しますか?
ビジネスロジックはドメインが付き
と
オブジェクト 外に実装されているソフトウェアのドメインモデルこのパターンでは、ロジックは通常 で、別のクラスで実装されています。 はstを変換します。ドメイン のオブジェクトを食べました。ファウラーはそのような外部の クラスのトランザクションスクリプトを呼び出します。
ショッピングカートの例を挙げると、Cartオブジェクトはドメインオブジェクトになります。しかし、カートを最終注文まで処理するには、注文在庫を確認し、クレジットカードの支払いを処理する必要があります。 Cartオブジェクトの中のすべてを行うことは、Cartクラスが巨大で扱いにくいことを意味するので、これらの多くのことはユーティリティクラスを必要とします。つまり、この例のカートは貧血ドメインモデルであり、これらのユーティリティクラスは上記の定義に従って「トランザクションスクリプト」となるでしょうか?
私の好奇心を許していますが、私が理解したように、ドメインクラスの上記Purchase()のようなメソッドを完全に禁止しています。 貧血ドメインモデルでは、ドメインクラスにはゲッター/セッター以上のものはなく、ドメインクラスの外で実装されたすべての(!)動作に終わります。 したがって、上記の前提で、貧血ドメインモデルを採用すると、他に選択肢がないので、ヘルパー/ユーティリティクラスを使用するよう強制されます。 なぜ両方の世界のベストを使用してください:ドメインモデルのユニバーサルアルゴリズムと外部の残りの部分! Stefan – struppi
@struppi - なぜ上記のPurchase()のようなメソッドは禁止されていますか?この方法は、購入を実行するビジネスロジックが含まれているため、取得/設定する以上の可能性があります。 –