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

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

赵高韵
2023-03-14

谢谢

共有1个答案

洪研
2023-03-14

如果有的话,它们之间有什么不同?

洋葱:有层,依赖关系总是指向内部,也就是说,一个层可以使用它内部的任何层。内部层是域模型,外部层是基础结构,但之间的层数可能会有所不同。

六边形(这是原始名称“端口和适配器”的替代名称):没有层。您有应用程序、端口和适配器。端口属于应用程序,它们是应用程序的API/SPI。适配器位于应用程序之外,每个适配器依赖于应用程序的一个端口。

洋葱的好处就是从上面推导出来的。由于六边形有很多工件,如果项目很大,整个项目的构建应该需要很多时间。

你为什么要用它?什么时候用?

使用它们中的任何一个的要点是,您专注于您试图解决的真正问题,而不使用任何技术或框架。应用程序与技术无关,并且很容易从一个框架迁移到另一个框架。因此,这两种架构都被称为“干净的”架构。您的应用程序核心没有框架代码、注释等。

我宁愿说什么时候不用它们。如果你正在开发的应用程序并不复杂,例如,它只是一个CRUD,也许它不值得使用它们。

就我个人而言,我喜欢“端口和适配器”而不是其他。

希望我的解释有所帮助。

 类似资料:
  • 我读了很多关于六边形体系结构的书,但是在我看到的所有例子中,所有的文件夹和类ubication都是不同的,这对我来说有点困惑。 我用下面的文件夹结构做了一个简单的Spring Boot应用程序。适配器文件夹包含存储库接口和rest控制器的实现。 在domain文件夹中,我有model,它是一个简单的POJO,ports,它是服务类的接口,包含了产品的所有业务逻辑,还有repository的接口,它

  • Joomla是一个模型 - 视图 - 控制器Web应用程序。 在本章中,我们将讨论Joomla的架构风格。 下图显示了Joomla的架构。 Joomla的架构包含以下层 - Database Joomla框架 Components Modules Plugin Templates 网络服务器 Database - 数据库是数据的集合,可以以特定方式进行存储,操作和组织。 数据库存储用户信息,内容和

  • 以下屏幕截图显示了Angular 2应用程序的解剖结构。 每个应用程序都包含组件。 每个组件都是应用程序功能的逻辑边界。 您需要具有分层服务,这些服务用于跨组件共享功能。 以下是组件的解剖结构。 一个组成部分包括 - Class - 这类似于C ++或Java类,它由属性和方法组成。 Metadata - 用于装饰类并扩展类的功能。 Template - 用于定义应用程序中显示的HTML视图。 以

  • Drupal是一个用于Web内容管理的平台,它是构建简单和复杂站点的强大工具。 在本章中,我们将讨论用于实现用户界面的Drupal的架构风格。 下图显示了Drupal的架构 - Drupal的架构包含以下层和miuns; Users Administrator Drupal PHP Web Server Database Users - 这些是Drupal社区的用户。 用户使用Drupal CMS

  • 本章介绍了JFreeChart的基本类级别和应用程序级别体系结构,以便您了解JFreeChart如何与不同的类进行交互以及它如何适合基于Java的应用程序。 类级架构 类级体系结构解释了库中的各种类如何相互交互以创建各种类型的图表。 以下是上述框图中使用的单位的详细信息 - S.No 单位和描述 1 File 具有用于在文件中创建数据集的用户输入的源。 2 Database 具有用于在数据库中创建