如何将模块内部进度状态填充到另一个模块



假设我有一个python 3.7+模块/脚本a,它可以进行大量计算。此外,模块A正在另一个模块B中使用,其中模块A被完全封装,而模块B不知道模块A的很多内部实现,只是它以某种方式输出了计算进度。

将我视为模块A的负责人(人员A(,而其他不认识我的人(人员B(正在编写模块B。因此,人员A基本上正在编写一个开放库。

模块A输出进度的最佳方式是什么?我想这是一个设计决定。

  1. 模块a中的getter是否有意义,因此模块B必须始终调用此getter(可能在循环中(才能检索a的进度
  2. 是否可以以某种方式使用模块a中实现的回调函数,以便每次进度更新时都调用该函数?因此,此回调返回A的当前进度
  3. 有没有其他方法可以用来解决这个问题

向我介绍现有的解决方案将非常有帮助!

本质上,模块B希望在模块A经过大量计算步骤时观察它。由模块A决定如何计算进度并与模块B共享。模块B无法计算进度,因为它不知道计算的细节。所以它很好地利用了观察者模式。模块A不断通知B其进度。进度更新的形式也很重要。它可以是百分比、"10步中的第5步"或时间。它将实际定义模块A通知模块B的通知有效载荷结构。

最新更新