MVC、MVP和MVVM是常见的三种架构设计模式,当前MVP和MVVM的使用相对比较广泛,当然MVC也并没有过时之说。
创新互联建站是一家专业提供元氏企业网站建设,专注与网站设计制作、网站设计、HTML5、小程序制作等业务。10年已为元氏众多企业、政府机构等服务。创新互联专业的建站公司优惠进行中。
MVC (Model-View-Controller, 模型-视图-控制器),标准的MVC是这个样子的:
简述:
缺点:
MVP (Model-View-Presenter) 是MVC的演化版本,几个主要部分如下:
简述:
解释:
优点:
缺点:
MVVM 是 Model-View-ViewModel 的简写。和 MVP 模式相比,MVVM 模式用 ViewModel 替换了 Presenter ,其他层基本上与 MVP 模式一致,ViewModel 可以理解成 是 View 的数据模型和 Presenter 的合体。MVVM 就是将其中的 View 的状态和行为抽象化,让我们将视图 UI 和业务逻辑分开。
简述:
缺点:
参考:
MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。其中M层处理数据,业务逻辑等;V层处理界面的显示结果;C层起到桥梁的作用,来控制V层和M层通信以此来达到分离视图显示和业务逻辑层。
在Android开发中,比较流行的开发框架模式采用的是MVC框架模式,采用MVC模式的好处是便于UI界面部分的显示和业务逻辑,数据处理分开。那么Android项目中哪些代码来充当M,V,C角色呢?
M层:适合做一些业务逻辑处理,比如数据库存取操作,网络操作,复杂的算法,耗时的任务等都在model层处理。这个和JavaEE不太一样,javaee中model层一般只有模型,而复杂的操作一般放在业务(service)层中。
V层:应用层中处理数据显示的部分,XML布局可以视为V层,显示Model层的数据结果。
C层:在Android中,Activity处理用户交互问题,因此可以认为Activity是控制器,Activity读取V视图层的数据(eg.读取当前EditText控件的数据),控制用户输入(eg.EditText控件数据的输入),并向Model发送数据请求(eg.发起网络请求等)。
区别在于
从上图可以看出:MVC的耦合性还是较高的,View可以直接访问Model,导致3者之间构成了回路。所以两者的主要区别是,MVP中View不能直接访问Model,需要通过Presenter发出请求,View与Model不能直接通信。
2.与MVVM(Model-View-ViewModel)的区别
MVVM与MVP非常相似,唯一区别是View和Model进行双向绑定,两者之间有一方发生变化则会反应到另一方上。MVVM模式有点像ListView与Adapter、数据集的关系,当数据集发生变化时,调用Adapter的notifyDataSetChanged之后View就直接更新,同时它们之间又没有耦合,使得ListView变得更加灵活。
可以 其实设计模式都是配置这里 配置那里 只要你会一种 另外一种配置相信也不成问题
可以,使用webservice就行 不过大多返回的不是html html需要浏览器解析 而android开发应该是请求一些数据返回就行,然后将数据放入相应的控件中具体是需要返回json 还是xml 或者是其它类型 需要服务器开发者和android客户端开发者共同协商完成
MVC架构:MVC就是Model-View-Controller,它们的作用是: (数据模型)Model:数据的封装和保存,业务逻辑和实体模型 (视图)View:视图界面,对应于布局文件 (控制器)Controller:业务逻辑,对应于Activity、Fragment等
MVP架构:
MVP是Model-View-Presenter,它们的作用如下:
Model:业务逻辑和实体模型,用来操作实际的数据,包含Bean和Model的抽象接口来降低耦合。
View:就是Android中的视图,需要建立一个View的抽象接口View Interface。通过实现View的接口来实现View与Presenter的交互,从而降低耦合。对应于Activity,负责View的绘制与用户交互;
Presenter:View和Model的中间枢纽,处理和用户交互的逻辑。