我设计了一个MVC(在.NET中),其中View没有链接到Model。它只知道控制器。传统的MVC模式具有相互通信的所有部分。在我的情况下,Controller基本上是一个调解员。这可以保留View之外的任何异常或逻辑。它对模型没有依赖性。这不再是MVC吗?
答案 0 :(得分:19)
您所描述的实际上是名为Passive View的模型 - 视图 - 控制器的子集。
被动视图是另一种变体 在模型 - 视图 - 控制器和 模型 - 视图 - 主持人。和这些一样 UI在视图之间分开 处理显示和控制器 响应用户手势。的的 被动视图发生重大变化 是视图是完全的 被动,不再负责任 从模型中更新自己。 As 结果是所有视图逻辑都在 控制器。结果,有 两个方向都没有依赖关系 在视图和模型之间。
Martin Fowler在above link中对此进行了讨论,并简要讨论了其他变体here。
答案 1 :(得分:1)
我想而不是MVC,那只是VC,嗯? ;)
在MVC实现中,视图订阅模型中的更改,并作用于控制器;控制器对模型进行更改,通过对模型的引用将其传播到视图。在你的情况下,听起来更像你已经将你的模型埋在你的控制器中(毕竟,你必须从某个地方获取你的数据);这不一定是坏事或任何事情,但严格来说它也不是MVC。
答案 2 :(得分:0)
在最严格的意义上,没有。但是如果需要的话,它是否有视图与模型通信而不改变架构/接口的方式?
[例如,如果你实现了一个TalkToModel()方法,即使你不使用YET,我的视图中也是一个MVC。]
答案 3 :(得分:0)
你的方法看起来很像MVP,但如果没有更多细节,我无法肯定。