通量设计模式 - 关于视图概念的模糊

时间:2015-04-23 14:23:47

标签: design-patterns reactjs reactjs-flux flux

在阅读了关于通量设计模式1的许多解释之后,我完全理解它是如何工作的。

调度程序与JINI 2查找服务非常相似。优点很明显,调度员不需要知道如何执行操作以及谁将执行操作。它使您可以随时在持续集成中添加任何商店。

商店是模型和业务逻辑的直接封装。这里没问题,它只需要通知自己给调度员,他将接收操作和有效负载,如果支持则执行操作。

视图是对商店中数据的简单解释。但是通知它的方式,回调要求视图知道谁是商店,是不是。最重要的是,应用程序需要视图是谁以及获得它。

在我的理解中,视图打破了可伸缩性,因为虽然你不需要知道动作是什么,但你需要知道结果是什么,并且视图需要知道存储是什么。除非我们在视图和存储之间以及客户端和视图之间使用另一种调度程序。

1 个答案:

答案 0 :(得分:1)

你在技术上是正确的,尽管我还没有发现这是现实世界通量应用中的一个难点。部分原因是只有所谓的"控制器视图"将访问磁通存储,它们全权负责根据磁通存储获取数据并将其转换为作为属性传递给其他组件的数据。

例如,在Fluxxor"什么是Flux"您链接到的页面,有以下图片:

Flux Data Flow

在这样的应用程序中,只有最顶级的" View" box(带有商店箭头的那个;也许它应该标记为" Controller-View"相反)实际上知道存储并从中访问数据;下面的其他视图通过道具获取数据(通常数据首先由控制器视图根据其子项的%进行转换。)

[编辑:在现代助焊剂应用中,这些通常被称为"容器"除了通过道具桥接正常组件和通量存储/动作之外什么都不做。]

如果您不是这种方法的粉丝,那么在商店和获取商店数据并以某种方式对其进行转换的视图之间引入新概念将是微不足道的,这样就不需要知道任何视图关于商店(虽然这基本上是控制器视图的作用)。我也非常喜欢组合视图以将它们链接到商店的想法;请参阅this Fluxxor issue以获取示例。