如果你对该文章中的内容有疑问/不解,可以点击此处链接提问
要注明问题和此文章链接地址 点击此处跳转
MVC
=========================
1. mvc 的定义
M Model 模型层
V View 视图层
C Controller 控制层/控制器
2. mvc 优势
1.高内聚 低耦合
2.易于维护
3.代码可读性高
4.单一入口
3. 缺点
执行效率降低
学习难度较大
4. MVC 实例
4.1 MVC 1.0
目录结构
|-- models 模型层
|-- views 视图层
|-- controllers 控制层/器
|-- configs 配置文件目录
|-- index.php 入口文件
URL:
index.php?m=控制器名&a=方法名
index.php?m=User&a=add
4.2 MVC 2.0
目录结构
|-- models 模型层
|-- views 视图层
|-- controllers 控制层/器
|-- configs 配置文件目录
|-- index.php 入口文件
自动加载类
4.3 MVC 3.0
目录结构
|-- models 模型层
|-- views 视图层
|-- libs Smarty模版引擎
|-- runtime 运行目录
|-- -- views_c 编译目录
|-- -- caches 缓存目录
|-- controllers 控制层/器
|-- configs 配置文件目录
|-- index.php 入口文件
引入Smarty模版引擎
## 高内聚 低耦合
耦合性:也称块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。模块间耦合高低取决于模块间接口的复杂性、调用的方式及传递的信息
内聚性:又称块内联系。指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。若一个模块内各元素(语名之间、程序段之间)联系的越紧密,则它的内聚性就越高。
所谓高内聚是指一个软件模块是由相关性很强的代码组成,只负责一项任务,也就是常说的单一责任原则。
耦合:一个软件结构内不同模块之间互连程度的度量。
对于低耦合,粗浅的理解是:一个完整的系统,模块与模块之间,尽可能的使其独立存在。也就是说,让每个模块,尽可能的独立完成某个特定的子功能。模块与模块之间的接口,尽量的少而简单。如果某两个模块间的关系比较复杂的话,最好首先考虑进一步的模块划分。这样有利于修改和组合。[1]