Flex4主机组件是否具有与视图中介/助手相同的功能?

时间:2011-07-17 11:57:25

标签: flash flex flex4 flex-spark mediator

来自Robotlegs / PureMVC,我非常熟悉视图中介的概念,即一个几乎可以监听来自“虚拟”视图的事件/请求并发出进一步请求的组件,在应用程序范围内发送信号/事件,根据视图的请求执行命令等。

Flex 4中引入的主机组件构思是否可以与调解器相同?唯一令我困惑的是主机组件仍被视为视图,因为它们扩展了SkinnableComponent或任何继承它的类。在我看来,调解器应完全不在视图逻辑之外。

尽管如此,我不想为该主机组件编写外观,主机组件和视图中介,因为这将是一个非常大的开销,并且会导致更复杂而不是抽象。

我应该使用主机组件作为调解器,并将应用程序级逻辑放在那里,例如应用程序级事件调度吗?

1 个答案:

答案 0 :(得分:1)

我也很担心SkinnableComponent模式。我喜欢我的行为生活在不是视图组件的类中。我甚至不喜欢引用视图组件,所以我倾向于选择“Presentation Model”模式。对于SkinnableComponent,主机组件仍然是一个视图组件,但它包含所有共享行为。感觉有点混乱,我不是这个的忠实粉丝。但是,我觉得这是构建可重复使用的可换肤组件的一种非常好的方法。例如,如果您是组件开发人员,那就太棒了。

话虽这么说,但我发现拥有一个Skin,一个Host Component和一个独立的行为类太复杂了。因此,我倾向于坚持他们为皮肤组件提供的模式(皮肤和主机组件)。根据我的经验,它使测试更加复杂,但它就是它。

如果我不需要SkinnableComponent(因为我通常不会为外部消费创建可换肤组件),我只需使用单独的显示模式(通常为PM)并放弃蒙皮模式。