2

1)根据域驱动设计,域层应该只有存储库接口,实现不应该是域层的一部分 - 如果我的理解有误,请告诉我?

2)如果存储库实现不应该是域层的一部分,那么我应该将存储库实现保存在哪里(在基础设施中?)

3)如果我想有这样的设计流程,以下目录结构是否可行:(我使用的是DAO而不是ORM)

控制器 <---dto---> 域服务 <----dto---> RepositoryImpl <---> DAOImpl

Directory structure

+ Infrastructure
      +--- Logging
      +--- Caching

+ Applicaton
      +---- Service1Controller

+ DomainLayer
      +---- Service1Impl
      +---- Service2Impl

+ DataAccessLayer
      +----Repositories
               +----------Service1Repositories
               +----------Service2Repositories
      +----DAO
               +----------Service1DAO
               +----------Service2DAO

4) 存储库可以是数据访问层的一部分吗?

5) DDD 是架构还是设计?如果是架构,那么 DDD 和洋葱架构有什么区别?

4

1 回答 1

2
  1. 截至声明:

    A. 高级模块不应该依赖于低级模块。两者都应该依赖于抽象。

    B. 抽象不应依赖于细节。细节应该取决于抽象。

    你的理解没问题。您将域层与接口耦合,而不是实现。

  2. 是的,基础设施是最好的地方。

  3. 它应该做得很好。

  4. 存储库的实现,是的。

  5. 领域驱动设计不是一种技术或方法。DDD 提供了一种实践结构和术语,用于制定设计决策,重点关注和加速处理复杂领域的软件项目。建筑是完全不同的东西。您可以将任何架构与 DDD 一起使用。

于 2014-08-25T14:39:47.157 回答