MVP框架简述

xiaoxiao2021-02-28  16

前言: 无论是安卓应用开发,还是Web开发,还是.Net开发,更甚至C++、C,对项目架构的思想都是非常重要的,好的架构可以让项目模块分明,容易维护 。而在多人开发中,模块清晰更加易于相互合作。在此,本人将对MVP 的理解整理成文 和 Demo 向各位分享。 在简述MVP框架之前,需要阐述一下1个经典模型。 MVC 相信做软件开发的同学都听过MVC的大名。MVC全名是Model View Controller,分别表示模型、试图、控制器,是一种业务逻辑、数据、界面显示分离的的代码设计方式,从而是同一个程序可以使用不同的表现方式,例如同一批统计数据,可以用柱状图、饼图来表示。 通常 Model 表示数据处理部分 View 表示显示部分 Controller 表示逻辑处理部分 MVC 非常经典,以至于从1970至今,仍然被广泛使用,但是MVC仍然存在一些问题,由上图可以看出,由于MVC形成一个闭环,一旦其中一个模块进行了修改,那么就可能会影响到另外2个模块,这样其实是违背了低耦合原则(当然,实际开发中,MVC只是一个大框架,里面有很多很多的机制实现低耦合原则)。 应对与MVC的问题,MVP设计模式横空出现。 MVP是从MVC演变而来,其中 M = Model V = View P = Presenter 可以看到,在MVP 模式里,Presenter完全将View和Model分开,这样做有几个好处。 1、View和Model完全分离,如果Model被修改,对View的影响会非常小。难以理解的小伙伴,将Model当成是20000S、Z3、Z4这样的数据源,View就是无纸化表决界面,或者会更好理解。 2、同一个Presenter可以套用不同的View,例如应用运行在手机上时,显示的是PhoneView,而运行在平板上时,就显示TabletView。 3、把逻辑放在Presenter里,可以脱离用户界面,运行单元测试。 下面提供一份基于MVP架构的安卓应用,该应用包含一些伪代码,基于MVP实现的单元测试,以及MVP如何实现Model - View - Presenter 互相分离的方法,项目中我尽可能写了注释同时,同学在查看该项目时可以重点留意: 1、MVP是如何实现一次网络请求 2、如何接收来自服务器的消息通知,并对该消息进行处理 3、如何针对每一个层进行测试 4、想想自己的项目,如果需要改成MVP架构,应该怎么做

代码资源

转载请注明原文地址: https://www.6miu.com/read-2800048.html

最新回复(0)