关于DDD实现的一点困惑

13-09-02 lxitgto
    

由于最近都在看经典的领域驱动设计一书,今天与同事讨论用户登录的业务场景时在实现方式上存在如下的困惑。

login的实现方法是否应该完全放在account的领域对象中,如果是的话,那么该account在何时被实例化? 按照account id或username查找该account的逻辑按道理应该写在对应的仓储中,但是实际调用的时候是在应用层的service中还是在领域层的领域对象中?

    

banq
2013-09-04 06:43

2013-09-02 22:53 "@lxitgto

"的内容

但是实际调用的时候是在应用层的service中还是在领域层的领域对象中? ...

如果你采取SOA架构,先调用服务,再通过服务调用领域层的领域对象。

如果你采取直接REST架构,调用资源管理器,资源管理器再调用领域层的领域对象。

如果你采取MVC架构,先调用控制器,再通过控制器调用领域层的领域对象。

不同的技术架构,包装在领域层外部的介质不同,但是核心都是业务。也可以认为SOA REST和MVC是领域模型的boundedContext,根据上下文不同,领域对象的调用客户端不同。

[该贴被banq于2013-09-04 06:46修改过]