我设计一个MVC不允许视图(形式)之间的通信。如果窗体需要与另一形式进行通信,它提高控制器,它的其他形式可以订阅的事件。总的想法是保持沟通的路径到最低限度,帮助保持复杂了。每个视图与RootController,这是一个单或子控制器,其中所述查看访问,通过RootController连通。再次,它保持通信路径向下因为一切穿过RootController。

这是否遵循其中多个节点添加至网络的一般网络理论,更复杂的它得到。 “与”,这些节点的每直接通信的越多,越复杂引入到网络中。任何人都可以指出究竟该区域/理论被称为?引用?

就是我与MVC做类似于具有网络上的所有节点经过一个中心节点互相沟通?

有帮助吗?

解决方案

我想你可能想看看了图论(这是网络的拓扑结构的基础)。

和您的溶液听起来像它类似于具有一切通过网络中的中央节点进行通信。这是一个简单的良好格局(每个新节点只需要一个连接来连接一切),但不利于可扩展性在您RootController正在做的工作量是巨大的,你会到达一个点。每一个新的节点让你更接近到在你的中心节点的主要性能瓶颈。

其他提示

实际上它听起来像图案...所有的通信发生在通过中央毂...

听起来像是基本观察者模式

好了,如果有一个完整的图(其中给定的节点被直接连接到每个其他节点),那么这将是N(N-1)/ 2的边缘和为O(n ^ 2)...是你正在寻找?

有关毂和辐条,你正在寻找在n-1个边和O(n)的复杂度。

然而,在我工作过的许多Rails应用,使视图调用其他的意见从来没有(我记得)引起了许多问题。它实际上将是非常困难的工作全“部分”的事没有它。

我不知道该网络/图论将是真正有用的在这里。所有的“路径”是长度为1的这似乎不言而喻,你有更多的形式,以及更多的这些形式互相比较复杂的应用程序是互动。如果你正在寻找你的应用程序模型,我想你会更好看消息传递,而不是图论。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top