在面试某家公司的时候,我被问到了这个问题。
你知道哪些设计模式...然后我被告知基于 MVC 设计模式编写最简单的“hello world”应用程序。
我想出了一个 JavaScript 程序
var arr = ["a","b","c","d"]; // this is an array, same as store or model
alert(arr[0]); // this is controller
//and browser alert is a view.
后来我被告知alert是一个视图。我所知道的关于 MVC 的基本概念是模型中的任何更改都会报告给视图。中间有一个控制器来调用这些方法。
您能否纠正我的方法,或者为 hello world MVC 应用程序提出替代解决方案。还解释了 MVC 的微妙方面。
Thanks.
var M = {}, V = {}, C = {};
M.data = "hello world";
V.render = function (M) { alert(M.data); }
C.handleOnload = function () { V.render(M); }
window.onload = C.handleOnLoad;
控制器 (C
)监听某种交互/事件流。在本例中,它是页面的加载事件。
Model (M
) 是数据源的抽象。
View (V
)知道如何从模型渲染数据。
控制器告诉视图使用模型中的某些内容执行某些操作。
在这个例子中
- 除了实现一些接口之外,视图对模型一无所知
- 模型对视图和控制器一无所知
- 控制器了解模型和视图,并告诉视图对模型中的数据执行某些操作。
请注意,上面的示例是为了演示目的而进行的严格简化。为了realJS MVC 世界中的“hello world”示例去看看todoMVC https://github.com/addyosmani/todomvc
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)