Domain driven design 基于消息的域对象协作
最近,我在考虑如何使用消息来实现域对象协作。现在我有了一些想法:Domain driven design 基于消息的域对象协作,domain-driven-design,Domain Driven Design,最近,我在考虑如何使用消息来实现域对象协作。现在我有了一些想法: 如果每个域对象想要响应一条消息,它将实现一个接口 每个域对象将不依赖于任何其他域对象,这意味着我们将不具有Model.OtherModel关系 每个域对象只做只修改自身的事情 每个域对象都可以发送一条消息,关心此消息的任何其他域对象都将接收此消息 总之,域对象之间协作的唯一方式是消息,一个域对象可以发送任何消息或接收任何消息,只要它需要 当我学习Evans的DDD时,我看到他在域中定义了聚合概念,我认为聚合是静态的,不适合对象交互
public class EventA : IEvent { }
public class EventB : IEvent { }
public class EventC : IEvent { }
public class ExampleDomainObject : Entity<Guid>{
public void MethodToRaiseAnExampleEvent()
{
RaiseEvent(new EventC());
}
}
public class A : Entity<Guid>, IEventHandler<EventB>, IEventHandler<EventC> {
public void Handle(EventB evnt)
{
//Response for EventB.
}
public void Handle(EventC evnt)
{
//Response for EventC.
}
}
public class B : IEventHandler<EventA>, IEventHandler<EventC> {
public void Handle(EventA evnt)
{
//Response for EventA.
}
public void Handle(EventC evnt)
{
//Response for EventC.
}
}
公共类事件a:IEvent{}
公共类事件B:IEvent{}
公共类事件C:IEvent{}
公共类ExampleDomainObject:实体{
public void MethodToRaiseAnExampleEvent()
{
RaiseEvent(新事件c());
}
}
公共A类:实体,IEventHandler,IEventHandler{
公共无效句柄(EventB evnt)
{
//对事件B的响应。
}
公共无效句柄(EventC evnt)
{
//对EventC的响应。
}
}
公共B类:IEventHandler,IEventHandler{
公共无效句柄(EventA evnt)
{
//对事件的回应。
}
公共无效句柄(EventC evnt)
{
//对EventC的响应。
}
}
这就是我的想法。希望听到你的话。你听说过或吗
听起来这就是你思想的方向
外面有很多人。许多关于和的好博客帖子
有些是可用的,并且有一个可以讨论实现细节的平台