2

EventDispatcher をエンティティに挿入する DDD の方法は正しいですか?

Card という DomainModel があるとします。ユビキタス言語のこのカードは、アクティブ化および非アクティブ化できます。ただし、アクティブ化と非アクティブ化には、現実の世界でアクティブ化するサード パーティの API への呼び出しが含まれます。

したがって、ドメイン モデルを明確に保つために、私のアプローチは、Card エンティティには次のような activate メソッドがあります。

public function activate()
{
    $this->active = true;

    $this->dispatcher->dispatch(CardEvents::CARD_ACTIVATION, new CardActivation($this));
}

次に、サービスはディスパッチャをリッスンして、外部 API を使用してアクティブ化または非アクティブ化します。

この EventDispatcher をエンティティに注入するのは正しいですか?

API の呼び出しが失敗した場合のアプローチは何ですか?

リスニング サービスが最終的にカード自体のアクティブなプロパティを変更するという意味はありますか?

ありがとう。

4

1 に答える 1