我应该使用什么设计模式来组合在链中通信的三个数据源?

What design pattern should I use to combine three data sources that communicate in a chain?

具体问题:

  1. 这个特定问题的最佳设计模式或策略是什么?
  2. 如何防止潜在的级联效应并重写代码?

详情:

我正在开发一个程序,其中有三个数据源(A、B、C)。 为了从 B 获取数据,我需要 A 的信息。 为了从 C 中提取数据,我需要 B 中的信息。

当前方法:

描述:

我用了四个 classes。处理来自 A、B 和 C 的数据传递的中介 class。然后,A、B 和 C 的单独 class 处理提取、格式化、子设置等

处理流程:

  1. 在调解器内部 class 我实例化了 classes A、B 和 C。
  2. 我 运行 调解器 class 中的一个函数称为 create_A_files()。
  3. B 需要的来自 A 的数据然后作为参数传递给 B 的 create_B_files(A_necessary_data) 函数。
  4. 最后,通过create_C_files(B_necessary_data)函数从B到C完成同样的操作。

当前方法存在的问题:

我正在对抗级联效应。我在 A 中所做的任何更改都会在 B 和 C 中传播并导致错误和错误。 因此,我必须返回并重写 B 和 C 以适应 A 的变化。

提前感谢您的帮助! 纳尼亚649

首先,确保你的 3 个部分被很好地隔离并被测试覆盖。拥有一个好的测试套件是您可以用来防止更新代码时出现问题的最佳工具。

然后想一想:其实每一块都是独立的:

  • A 正在产生一些输出,但并不真正关心输出到哪里。
  • B 正在操纵一些数据,但并不真正关心数据来自何处。
  • C 与 B 相同

现在,我真的不能说如何在 python 中做到这一点,但在 .NET 中,我会首先为所有部分确定正确的接口,然后构建一个协调器来处理全局工作流程。

当然还有大量的测试:)