在 Clean Architecture 中建立工作流和组件间通信

Establish a workflow and inter-component communication in Clean Architecture

我正在构建一个由 3 个组件组成的应用程序,每个组件都包含一个 GUI 部分(视图、控制器、演示器)和一个域部分(用例和实体)。有一个通用的基础设施组件(数据库)。有了这个,我试图坚持干净的架构原则:对领域层的依赖,并使用依赖倒置来启用绿色箭头指示的控制流

组件的使用有特定的顺序(工作流程)。当一个组件达到某个状态时(可以是用户启动的或者在域层中完成一些工作之后),下一个组件需要被初始化并且 GUI 需要移动到下一个 view/page。此外,每个工作流程步骤都会产生一个输出,作为下一步的输入,从而设置下一个组件的状态(从左到右的黑色虚线箭头)。此数据(ID:字符串,Matrix3D:4x4 矩阵)需要跨组件进行通信。

听起来您需要一个总体 GUI 组件来代表实际工作流并使用其他组件的实例。大多数 UI 框架都可以帮助您进行此类组合。由于您没有告诉我们您使用的是哪个框架,因此您必须使用框架文档来弄清楚。

通常确保在父子组件之间创建松耦合,以确保从属组件可以独立重用。

还有一件事你没有要求 - 在你的图表中,所有组件都在底部使用相同的 DB 块。不清楚这到底意味着什么,但要确保每个组件都有自己独立的持久性,例如单独的表。任何将状态从一个组件传递到下一个组件的需要都应该通过拥有数据的组件的 API 而不是通过直接共享的数据库表。