让你了解 MVC、MVP 、MVVM
|
看似没有什么特别的地方,但是由几个需要特别关注的关键点: View是把控制权交移给Controller,自己不执行业务逻辑。 Controller执行业务逻辑并且操作Model,但不会直接操作View,可以说它是对View无知的。 View和Model的同步消息是通过观察者模式进行,而同步操作是由View自己请求Model的数据然后对视图进行更新。 MVC的优缺点 优点: 把业务逻辑全部分离到Controller中,模块化程度高。当业务逻辑变更的时候,不需要变更View和Model,只需要Controller 换成另外一个Controller就行了(Swappable Controller)。 观察者模式可以做到多视图同时更新。 缺点: Controller测试困难。因为视图同步操作是由View自己执行,而View只能在有UI的环境下运行。在没有UI环境下对Controller进行单元测试的时候, Controller业务逻辑的正确性是无法验证的:Controller更新Model的时候,无法对View的更新操作进行断言。 View无法组件化。View是强依赖特定的Model的,如果需要把这个View抽出来作为一个另外一个应用程序可复用的组件就困难了。因为不同程序的的Domain Model是不一样的 MVP MVP其实是MVC的一种演进版本,它更简单,将MVC中的Controller改为了Presenter,View通过接口与Presenter进行交互,降低耦合,方便进行单元测试。 View:负责绘制UI元素、与用户进行交互(Activity、View、Fragment都可以做为View层); Model:对数据的操作、对网络等的操作,和业务相关的逻辑处理;
Presenter:作为View与Model交互的中间纽带,处理与用户交互的逻辑。可以把Presenter理解为一个中间层的角色,它接受Model层的数据,并且处理之后传递给View层,还需要处理View层的用户交互等操作。 (编辑:济宁站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |


