0

我可以看到几种方法。

  • 引用模型中的单个控制器。模型向这个控制器发送事件,其他控制器通过层次结构了解它并传递给视图

  • 让所有感兴趣的控制器成为模型上的监听器(模型有一个监听器列表)。视图通过控制器了解变化

  • 让所有感兴趣的视图成为模型的听众。(视图直接知道变化)

    哪个是合适的,为什么?

4

1 回答 1

1
  • 你的第三个选择是老派。视图由模型通知,视图决定如何处理。没关系,但其他选择更好。

  • 你的第二个选择听起来不错。视图由控制器通知(确保您有不同的控制器来更新视图和更新模型)。因此控制器可以在将事件传递给视图之前对其进行修改。控制器可以为视图分层定制数据。视图不应该这样做,工作只是显示一些东西(在选项三中,视图必须这样做)。

  • 您的第一个选择是对具有层次结构的选项二的小改进。在复杂的场景中,过滤事件传递可能会更好。但通常这会增加开销。所以更难阅读。

我会选择选项二。这是简单代码的最佳交易和复杂操作的选项。

于 2012-07-12T10:20:20.860 回答