具有依赖倒置的分层架构和六边形架构之间有什么区别?
What are the differences between Layered architecture with dependencies inversion and Hexagonal architecture?
我读了一些关于软件架构的书。
我注意到我使用了具有依赖倒置的分层架构。我有控制器层 类 依赖于服务层接口,服务层实现依赖于存储层接口。 None 层取决于具体 类。
现在,我也遇到了六边形架构,端口和适配器的想法感觉非常类似于具有依赖倒置的分层架构。
这两种架构风格有什么区别?
我发现六边形架构比传统的(即 vertically-stacked)分层架构更清楚以下内容:
Hexagon 的“内部”是最重要的部分,至少对于那些要求构建应用程序的人来说是这样,因为它具有核心域(适用于建模Domain-Driven设计)。
Hexagon 的“内部”提供了一个强大的边界,不依赖于硬件、基础设施或 I/O。这使得编写快速单元测试变得容易。
六边形外侧的适配器彼此分开,确保对一个的更改不会影响其他。它还可以轻松地“拔下”不再需要的适配器,或 plug-in 新适配器,而无需在六边形内部进行更改。
六边形架构是一种分层架构,但我发现在上面添加了清晰的边界以使其易于使用。
我读了一些关于软件架构的书。
我注意到我使用了具有依赖倒置的分层架构。我有控制器层 类 依赖于服务层接口,服务层实现依赖于存储层接口。 None 层取决于具体 类。
现在,我也遇到了六边形架构,端口和适配器的想法感觉非常类似于具有依赖倒置的分层架构。
这两种架构风格有什么区别?
我发现六边形架构比传统的(即 vertically-stacked)分层架构更清楚以下内容:
Hexagon 的“内部”是最重要的部分,至少对于那些要求构建应用程序的人来说是这样,因为它具有核心域(适用于建模Domain-Driven设计)。
Hexagon 的“内部”提供了一个强大的边界,不依赖于硬件、基础设施或 I/O。这使得编写快速单元测试变得容易。
六边形外侧的适配器彼此分开,确保对一个的更改不会影响其他。它还可以轻松地“拔下”不再需要的适配器,或 plug-in 新适配器,而无需在六边形内部进行更改。
六边形架构是一种分层架构,但我发现在上面添加了清晰的边界以使其易于使用。