最近看 好多人说IOS MVC 过时了 要用MVVM 什么什么的,感觉 很新奇,就去搜了一下,发现原来所谓的MVVM就是 之前微软在10年左右就推出的WPF ,鄙人不才,搞过两年多的C#开发,因此 做了下比较:
首先来看一下 WPF
WPF(Windows Presentation Foundation)是微软推出的基于Windows Vista的用户界面框架,属于.NET Framework 3.0的一部分。它提供了统一的编程模型、语言和框架,真正做到了分离界面设计人员与开发人员的工作;同时它提供了全新的多媒体交互用户图形界面。
那么 应用说道MVVM就是:
再来看下经典的MVC:
其实这就是 把VIEW层 再次分一下 分成view和view controller层 这让我想起了 之前的三层架构和MVC
三层架构是最基本的项目分层结果,而MVC则是三层架构的一个变体,MVC是一种好的开发模式。首先你要明白MVC分别代表的是什么意思.
M 即Model(模型层),主要负责出来业务逻辑以及数据库的交互
V 即View(视图层),主要用于显示数据和提交数据
C 即Controller(控制器),主要是用作捕获请求并控制请求转发
三层:UI 界面层 BLL 业务逻辑层,DAL数据访问层,Model 实体层
MVC中的的M 不是三层中的Model(实体层),他其实包括三层中的 BLL,DAL,Model,这是非常要注意的,这也是他们之间的区别的关键所在
其有点有如下:
低耦合性
高重用性和可适用性
较低的生命周期成本
快速的部署
可维护性
有利于软件工程化管理
当然优点也有缺点,那就是内部结构复杂,不容易理解,文件数量大,管理难度自然也就大
其实 本来是没有区别的 或者说 是相互关联的 具体就是
把不同的层次打乱 然后拆分出新的层次,这就是区别,额,感觉 现在的模式都是这样 ,可能对易老程序员来说,原来的用的顺手了,但是 对于初学者,这些感念简直就是噩梦,MVC是一种万金油一样的存在,你说他是设计模式也好,框架也好,总之我认为 好用就行,MVVM 通俗来说是这样是实现的
Model层是少不了的了,我们得有东西充当DTO(数据传输对象),当然,用字典也是可以的,编程么,要灵活一些。Model层是比较薄的一层,如果学过Java的小伙伴的话,对JavaBean应该不陌生吧。
ViewModel层,就是View和Model层的粘合剂,他是一个放置用户输入验证逻辑,视图显示逻辑,发起网络请求和其他各种各样的代码的极好的地方。说白了,就是把原来ViewController层的业务逻辑和页面逻辑等剥离出来放到ViewModel层。
View层,就是ViewController层,他的任务就是从ViewModel层获取数据,然后显示。
最后 放几张 我从网上找的别人设计的MVVM的 框架 目前我也正在研究 具体是MVC好还是MVVM好 仁者见仁智者见智,,,