- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
抱歉标题含糊。我很惭愧地问这个问题,但我现在真的需要我的意识。我无法确定我遵循的是 MVC 模式还是 MVVM 模式。
在我之前的实习中,我们有 C# 代码 (.NET),它有一个 Controller 并直接连接到数据库(没有服务层)。 Controller 将获取信息,格式化为 JSON 并将其提供给 Angular 的 Controller ,后者会将其显示在 View 上。
在我目前的实习中,我们不使用 Angular。我们使用 .cshtml 文件。服务层将其信息提供给 Controller , Controller 格式化模型并将其提供给 .cshtml View 并显示内容。
我的问题:
哪个是 MVC,哪个是 MVVM?请降到我的水平并解释。我在网上读到的大部分内容似乎使我与我在工作中观察到的内容更加混淆。
工作中的每个人都称它们为 MVC,我现在真的很困惑。如果两者都是MVC,那么两者有什么区别?
最佳答案
Angular 绝对更像是 Model-View-ViewModel-ish。而你现在所做的绝对听起来像 MVC。
MVVM 是一种特殊的模式,其中 UI 状态被封装在 ViewModel 中,因此最终 UI 的呈现相当愚蠢并且只是数据绑定(bind)。说,显示这个按钮,或者隐藏这个区域的状态逻辑都封装在 ViewModel 中。一个好处是,这允许构建单元测试来测试 ViewModel,从而隐式测试所有 UI 行为。 (见:Wikipedia article on MVVM 和 Martin Fowler's Introduction to Presentation Model 是 MVVM 的变体。)
在 MVC 中, View 本身可以根据提供的数据、模型来控制其行为、您想要显示/隐藏的内容等。这意味着在 MVC 中,如果不测试 UI 本身,就无法测试 UI 行为(例如,是否根据数据更改正确显示或隐藏某些内容)。
所以总而言之,MVVM,ViewModel 控制 UI 行为,UI 本身是愚蠢的,只是使用数据绑定(bind),并根据 ViewModel 中的逻辑执行它被告知要做的事情。
在 MVC 中,UI 是“智能的”,它会根据从模型接收到的数据重新塑造和呈现自己,但它感觉需要这样做。
您基本上可以查看 UI 是如何呈现的,并且如果您看到 UI 呈现逻辑根据该决定做出很多关于如何呈现自身的决定,那么您几乎知道您正在使用 MVC。如果您只看到大量数据绑定(bind),其中几乎每个行为都由一个单独的类驱动,该类封装了用于显示和隐藏 UI 片段的所有逻辑,并且这些数据通过数据绑定(bind)传递给 UI,那么它就是可能是MVVM。
我希望这会有所帮助。
关于c# - 我到底在用什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36342972/
这对你们来说可能很简单,但由于我是java新手,所以我想知道实际上什么是 接下来的部分会发生什么? if (args.length > 0) { file = args[0]; } publi
在我的 View Controller 中,我将 UITapGestureRecognizer 添加到 self.view。我在 self.view 之上添加了一个小 View 。当我点击小 View
我今天尝试从 Obj-C 开始并转到 Swift,我正在阅读文档。我试图在 Swift 中创建一个简单的 IBOutlet,但它不断给我这些错误。 View Controller 没有初始化器 req
我正在尝试使用 VIM 完成(字典和当前缓冲区),但我遇到了问题?和 !在方法名称的末尾。我能以某种方式向 vim 解释方法名称(基本上是单词)最后只能有它,而且只有一个,即 method_name
我是一名优秀的程序员,十分优秀!