【发布时间】:2014-10-23 23:52:37
【问题描述】:
对于我的大多数应用程序,我使用直接的 DDD 方法,这意味着分离 Onion 架构的各个层,将域与基础架构解耦,等等。两个经常出现的构建块,存储库和事件总线,请看像这样(简化)。
public interface IRepository<TEntity, TKey>
where TEntity : EntityBase<TKey>
{
void Add(TEntity entity);
}
public interface IEventBus {
void Publish<TEvent>(TEvent @event)
where TEvent : IEvent;
}
最近,我开始研究 CQRS,我发现了很多类似的模式,例如存储库、事件和命令总线。但是,例如CQRS 中的存储库不负责存储/检索实体,而是负责管理聚合和构造事件流。
现在我想知道:他们两个一起工作吗?或者它们是完全不同的方法,只是共享一些共同点?
【问题讨论】:
标签: design-patterns architecture domain-driven-design cqrs