1

私は DDD を見ていて、いくつかの考えがあります。ショッピング サイトには、典型的な注文があります。

public class Order
{
    public ICollection<OrderRow> OrderRows { get; set; }
    public ICollection<Payment> Payments { get; set; }
    ...
}

支払いは注文に置くのが自然なようです。注文を行うとき、または注文を処理するとき、支払いは注文の一部です。

しかし、後で管理者は支払いを個別に処理したいと考えています。たとえば、管理インターフェイスには、処理する必要がある支払いのリストがあります。

どうすればいいですか?Payments を注文から削除して、独自のルート集計にする必要がありますか?

4

3 に答える 3

2

私の理解では、集計は重複する可能性があり、重複する可能性があり、現在の操作のビジネス コンテキストに最も適した集計を定義できます。

したがって、この場合、はい、Order に関して作業する場合、Payments を Order 集計の一部として公開しますが、これは Payment を集計ルートとして公開する専用の PaymentRepository を持つことも妨げません。

于 2011-01-31T22:15:15.477 に答える
0

PaymentエンティティはOrder集計に属していないと思います。あなたが書いたように、支払いとは別に機能する機能があります。これは、支払いが注文コンテキストでのみ使用されないことを意味します。これは、支払いが注文集約に属していないことを意味します:)。
ただし、Order 集計の一部でなくても、Order クラスに Payments プロパティを含めることができます。

于 2011-01-31T22:02:37.873 に答える
0

Payment が Order なしでは存在できない場合、 Payment は集約ルートではありません。

集約ルートでない場合は、OrderRepository から適切な Order オブジェクトをロードし、その中の Payment エンティティを操作することが、最も DDD 整合性が高いように見えます。

于 2012-08-23T20:00:03.603 に答える