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

时间:2015-03-05 14:05:28

标签: javascript design-patterns architecture

说我已经完成了一个非常密集的编程任务big task,它可以分解为更小的明确定义的子任务:

  • big task
    • small task 1
      • tiny task 1
      • tiny task 2
      • ...
    • small task 2
      • ...
    • ...

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

我还在了解模块/中介/外观模式,但据我所知,架构看起来像这样:

Hierarchical module/mediator/facade setup

父任务将发布指令(哪些子任务会听到),子任务将在完成时公布其结果(父级任务会听到)。

我的理解是否正确? Addy Osmani的解释非常有用,但他并没有过多谈论用于复杂计算系列的模块。也许这种类型的项目有更好的设计模式?感谢。

1 个答案:

答案 0 :(得分:0)

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

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

您可能有一个抽象的Task类,它允许自己拥有子级。也没有孩子。此类可能还有calc()函数,如果需要,它会启动子进行计算,组合结果并将某些值返回给父级。您将不得不将一些逻辑抽象为Task,但这样的方案将允许您降低复杂性。

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

使用各种图案看起来非常漂亮和凉爽,但如果根本不需要它们的使用......

我错过了什么吗?