mvc - lixidaydayup/plan GitHub Wiki
model- view- control 是一种软件设计的模式 什么是模式? 是一种解决问题的思路,特别是解决问题的方法,分为哪几个步骤,哪几块相互协作。
model:携带数据 view:只负责展现 control: 可以对数据做处理,可以控制数据如何被展现到view
举个例子,model:张三这个人,有属性name,age,address, view:一个身份证的界面,可以显示一个人的信息,control:把张三的name显示到view的左上角 其他显示到右下角
没有mvc, 一般只有一个复杂的view, 比如一个页面,里面除了界面的代码之外,还有去数据库取数据的逻辑(model),张三的定义(model),怎么把张三的信息显示出来的过程(control),这个页面充满了逻辑代码和逻辑无关的东西的混合,导致2个问题:
- 职责不清晰。比如我擅长写页面你擅长写逻辑,我们面对一个混乱不堪的页面根本无从下手,写了都不知道是不是对的。
- 写的东西完全没有办法复用。我写了一个form,本来可以给任何对象用的(学生,老师,。。)但是因为充满了张三的定义,根本剥离不出来。
- 职责不清晰。现在清晰了,写页面的前端工程师只要关注view,其他不管,有需要显示model信息的地方就调用比如 #data.name 这样 类似这样
<div class="person">${data.name}</div>
他根本不用关心 data到底是什么 留着给control来填充数据就可以了
同样写后台逻辑的人,也不需要关心页面长什么样,只要把数据取出来整理好,按约定的格式传给control
- 复用。 现在完全可以,三块分开各干各的,互相独立不依赖。
总结来说,mvc就是分层,分模块,减小依赖,消除冗杂。