Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 我应该使用什么设计模式来组合三个在链中通信的数据源?_Python_Oop_Design Patterns_Mediator - Fatal编程技术网

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

Python 我应该使用什么设计模式来组合三个在链中通信的数据源?,python,oop,design-patterns,mediator,Python,Oop,Design Patterns,Mediator,具体问题: 对于这个特殊的问题,最好的设计模式或策略是什么 如何防止潜在的级联效应&重新编写代码 详细信息: 我正在开发一个程序,其中我有三个数据源(a、B、C)。 为了从B获取数据,我需要从A获取信息。 为了从C中提取数据,我需要从B中获取信息 当前方法: 说明: 我用了四节课。一个中介类,用于处理来自A、B和C的数据传递。然后,一个单独的类用于A、B和C,用于处理提取、格式化、子设置等 工艺流程: 在中介类中,我实例化了类A、B和C 我在中介类中运行了一个名为create_a_files()

具体问题:

  • 对于这个特殊的问题,最好的设计模式或策略是什么
  • 如何防止潜在的级联效应&重新编写代码
  • 详细信息:

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

    当前方法:

    说明:

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

    工艺流程:

  • 在中介类中,我实例化了类A、B和C
  • 我在中介类中运行了一个名为create_a_files()的函数
  • 然后,B需要的来自A的数据作为参数传递给B的create_B_files(A_required_data)函数
  • 最后,通过create_C_files(B_required_data)函数从B到C执行同样的操作
  • 当前方法的问题:

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

    提前感谢您的帮助!
    Narnia649

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

    然后,想一想:每件作品实际上是独立的:

    • A正在产生一些输出,但并不真正关心它去哪里
    • B正在处理一些数据,但并不真正关心数据来自何处
    • C和B一样
    现在,我不知道如何在python中实现这一点,但在.NET中,我将首先为所有部分确定正确的接口,然后构建一个协调器来处理全局工作流

    当然还有大量的测试:)