当前位置: 首页 > 知识库问答 >
问题:

洋葱架构-每个层都能访问每个接口吗(打破层依赖关系)?

耿星雨
2023-03-14

我一直在研究和实现洋葱架构模式(http://jeffreypalermo.com/blog/the-onion-architecture-part-3/)。

让我质疑我理解是否正确的一件事是:

共有1个答案

柳奇思
2023-03-14

所有接口都在核心程序集中定义。实现可以在其他程序集中实现,并将与IOC容器连接起来。

接口定义在每一层中,并在任何层外实现。所以一个层依赖于它里面的所有层。层数不固定,你可能有你想要的层。如果assembly指的是jar文件,那么每一层都有一个assembly。

由于所有接口都定义在核心中,所有程序集都引用核心,这是否意味着每个程序集都可以访问每个接口?

这不是有点打破分层设计的目的吗?在传统模型中,这是不可能的,因为DAL程序集不引用UI程序集

是的,你是对的。这是因为层是圆的,因为在每个圆中,模式没有说分裂它。

我是否误解了什么,或者与普通的n层架构相比,洋葱架构中可能存在这种“滥用”?

洋葱形建筑与六角形建筑的比较

 类似资料:
  • 我一直在阅读洋葱架构,今天我发现了鲍勃叔叔的清洁架构。 对于我来说,我看不出它们之间有什么不同,它们看起来完全一样(除了命名惯例)。 干杯

  • 问题内容: 每个HTTP请求是否在不同的线程中访问相同的servlet对象?还是创建一个新的线程和新的Servlet实例? 问题答案: 如果您的servlet未实现,则容器将使用相同的servlet实例。否则,不能保证击中相同的物体。如果认为必要,容器可以自由创建更多的servlet实例。但是请求来自不同的线程,不一定是新创建的(如Sanjay所述)。 根据Servlet 3.0规范: 对于未在分

  • 我正在处理一个需求。当前有一个搜索页面,其中包含值(示例数据)1)Employee和2)Sport Person的列表框。 对象层次结构(Hibernate Bean)Person是实际对象,它具有两个不同的类1)Employee和2)基于Sports Person的鉴别器列 Person_Type(鉴别器列)。 在搜索页面上,如果用户选择任何一个列表框,将从该子类中得到数据。 现在的要求是同时显

  • 我正在学习Apache Tomcat并阅读关于Tomcat 6的书。第一章是关于Tomcat 6中包含的基本组件。层次结构图描述了相应的基本组件:服务器、服务、引擎、主机、上下文和Apache web服务器请求通过引擎连接、IIS通过主机、web浏览器通过上下文。我这样解释是因为每个阀门都在这个问题前面提到的每个组件级别的盒子中。 似乎几乎没有关于这个图表的文件或书籍。当apache web服务器

  • 然而,我研究了API和公共库以及github的细节,但我找不到任何方法来: 检索所有公共存储库/映像(即使有数千个,我仍然需要一个开始列表来迭代) 查找图像的所有层 查找层的大小(因此不是图像,而是单个层的大小)。 谁能帮我找到检索这些信息的方法吗?