3

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

Flex 4 中引入的主机组件思想是否可以被视为与调解器相同?唯一让我有点困扰的是宿主组件仍然被认为是视图,因为它们扩展了 SkinnableComponent 或任何进一步从它继承的类。在我看来,调解员应该完全被排除在视图逻辑之外。

尽管如此,我不想为那个宿主组件编写一个皮肤、一个宿主组件和一个视图中介,因为这将是一个相当大的开销,并且会导致更多的复杂性而不是抽象。

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

4

1 回答 1

1

SkinnableComponent我在模式中也对此感到困扰。我喜欢我的行为生活在不是视图组件的类中。我什至不喜欢引用视图组件,所以我更喜欢“演示模型”模式。使用SkinnableComponent,宿主组件仍然是一个视图组件,但它包含所有共享行为。感觉有点乱,我不是这个的忠实粉丝。然而,我确实觉得这是构建可重用、可换肤组件的一种很好的方法。例如,如果您是组件开发人员,那就太好了。

话虽如此,我发现拥有一个皮肤、一个主机组件和一个单独的行为类太复杂了。因此,我倾向于坚持使用他们为我们提供的可换肤组件的模式(皮肤和主机组件)。根据我的经验,它使测试变得更加复杂,但事实就是如此。

如果我不需要SkinnableComponent(因为我通常不会为外部消费创建可换肤组件),我只需使用分离的呈现模式(通常是 PM)并放弃换肤模式。

于 2011-07-17T15:26:43.197 回答