Chinaunix首页 | 论坛 | 博客
  • 博客访问: 6098662
  • 博文数量: 2759
  • 博客积分: 1021
  • 博客等级: 中士
  • 技术积分: 4091
  • 用 户 组: 普通用户
  • 注册时间: 2012-03-11 14:14
文章分类

全部博文(2759)

文章存档

2019年(1)

2017年(84)

2016年(196)

2015年(204)

2014年(636)

2013年(1176)

2012年(463)

分类:

2012-05-18 01:37:07

 MVC的出现是很久很久以前的事情了, MVC本身有很多可以去说的地方,通过另一个视角去看MVC,

MVC不属于GOF设计模式,但它确实设计模式应用的集合,且拥有很多的实现方式,如:MFC的Document/View/Control,Qt的Model/View/Delegate,IOS的View/Controller/Delegate,java EE的Model/View/Control。如此多的实现让人眼都发晕。那MVC的本质是什么呢?

MVC和其他原始的设计模式一样都是为了分离变化,将不变与变化相分离,使系统更加灵活。MVC关注的对象包括:视图也就是看的见的实现的内容,模型即需要显示的数据,控制是最重要的部分它是控制视图如何渲染、模型如何管理的关键点。

MVC就体使用了那些经典设计模式呢?代理、桥接、观察者、适配器、建造者等,不同的实现具体使用到的设计模式也有所不同,但都最终实现了针对于视图和模型的相分离,并提供了统一的调用接口和绑定方法。我们从设计模式的基本原则来看一下MVC实现。

  1. 开闭原则,这个模型中你只能从基类扩展
  2. 抽象类,开发库提供了基础的接口你只需要去实现就可以
  3. 里氏代换,你实现的接口一定能够替换掉原来的抽象类的,不然系统就转不动了
  4. 依赖倒转,在原型中它只有接口而没有实现
  5. 接口隔离,三个接口你自己去实现,且有独立的功能
  6. 迪米特法则,不要直接在model中操作View,那是代理的事情
  7. 合成复用,你在设置model和delegate是就应该知道他们都在View或者controller中组合(不同的模型可能不同)

MVC的模型的方法不仅仅只在涉及到UI开发时能够应用,其他方面我们也能够应用到其中的方法。

阅读(432) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~