使用 module/mediator/facade 模式管理分层任务

Managing hierarchical tasks with module/mediator/facade pattern

假设我有一个非常密集的程序任务要完成,big task,它可以分解成更小的明确定义的子任务:

每个子任务从父任务中获取数据,运行相关计算,然后returns将结果传递给父任务,依此类推,直到big task完成。

我仍在学习 module/mediator/facade 模式,但据我了解,该架构如下所示:

父任务会发布指令(子任务会听到),子任务会在完成时发布它们的结果(父任务会听到)。

我的理解对吗? Addy Osmani 的解释非常有帮助,但他并没有过多谈论用于复杂系列计算的模块。也许对于这类项目有更好的设计模式?谢谢。

你确定你真的需要在这里使用这么多设计模式吗?

如果您只有一系列嵌套的孤立任务,为什么不像 matryoshka doll 那样构造它们?

你可能有一个抽象任务class,它允许自己有children。也不能有children。这个 class 可能还有 calc() 函数,如果需要,它会启动 children 进行计算,将结果和 returns 一些值合并到 parent。您必须将一些逻辑抽象到 Task 中,但这样的方案可以让您降低复杂性。

然后您将拥有 Task 的特定后代来执行不同类型的计算。您可以将此类任务的配置存储在 JSON 或 XML 文件中。

使用各种图案看起来很漂亮很酷,但如果根本不需要使用它们...

我是不是漏掉了什么?