'したがって、このコンテキストでOrder.adjust()
、呼び出しを委任するメソッドを作成しましたOrderAdjust Service
。持つことは、調整操作を自分のものOrder.adjust()
にするという利点があります。Order
これはどのように行われますか?ドメイン サービスは注入されていますか?
$order = new Order();
$order->adjust(???);
ステートレスの場合、ドメイン サービスはドメイン エンティティに対してどのように操作を行うことができますか? ドメイン サービスがエンティティに注入された場合、メソッドは参照に対してのみ呼び出すことができるため、状態が存在する必要がありますか?
$service = DomainService();
$entity = DomainEntity();
$entity->operation($service);
// Inside DomainEntity
public function operation(DomainService &$service)
{
// Operations are delegated to the domain service reference
$service->operation();
$service->operation2();
}
$another_entity = AnotherDomainEntity();
// What happened in the first object must be known here
// otherwise what's the point?
$another_entity->operation($service);
このように、またはアプリケーションサービスで行うべきではありませんか?
$domain_service = new DomainService();
$entity = new DomainEntity();
$another_entity = new AnotherDomainEntity();
$domain_service->performOperation($entity, $another_entity);
ドメインエンティティ/オブジェクト間の操作はどのように行われますか? 一般に、ドメイン オブジェクトはどのように通信しますか? それらはどこでインスタンス化されますか?
コード例は大歓迎です。
ソース: http://stochastyk.blogspot.no/2008/05/domain-services-in-domain-driven-design.html