查看: 1482|回复: 0

SAMIM-Android架构设计—mvp模式封装

[复制链接]

1

主题

1

帖子

9

积分

积分
9
发表于 2018-11-12 13:23:28 | 显示全部楼层 |阅读模式
本帖最后由 huyixuan 于 2018-11-15 18:13 编辑

设计架构MVC、MVP基本概述
一、 基本概念
MVC既 Model-View-Controller。M:逻辑模型 V:视图模型 C:控制器
(1)、模型(Model)
  Model是一个应用系统的核心部分,代表了该系统实际要实现的所有功能处理。比如:在一个电话应用中,Model代表一个电话号码簿,以及拨打电话和发送短信的程序函数代码。
(2)、视图(View)
  View是软件应用传送给用户的一个反馈结果。它代表软件应用中的图形展示、声音播放、触觉反馈等职责。视图的根节点是应用程序的自身窗口。比如,视频播放器中可能包含当前播放的画面,这个画面就是一个视图。
(3)、控制器(Controller)
Controller在软件应用负责对外部事件的响应,包括:键盘敲击、屏幕触摸、电话呼入等。Controller实现了一个事件队列,每一个外部事件均在事件队列中被唯一标识。框架依次将事件从队列中移出并派发出去。

MVP既 Model-View-Presenter。M:逻辑模型 V:视图模型 P: 逻辑控制层
(1)、模型(Model)
  Model是一个应用系统的核心部分,代表了该系统实际要实现的所有功能处理。比如:在一个电话应用中,Model代表一个电话号码簿,以及拨打电话和发送短信的程序函数代码。
(2)、视图(View)
  View是软件应用传送给用户的一个反馈结果。它代表软件应用中的图形展示、声音播放、触觉反馈等职责。视图的根节点是应用程序的自身窗口。比如,视频播放器中可能包含当前播放的画面,这个画面就是一个视图。
(3)、逻辑控制器(Presenter
Presenter同时持有View和Model对象,协调Model和View模块工作,处理交互。
二、MVP架构项目实践(朋友圈为例)
(1)、模型(Model)
    一个对象有不同属性和特征,在这里我们把朋友圈发布的动态抽离出来多种形态放在实体中
String feedText;//动态内容
String feedImgs;//动态图片
String userName;//发布动态人的名字
String userHeadUrl;//发布动态人的头像
……
(2)、视图(View)
负责绘制UI元素、与用户进行交互,当用户发出评论动态请求时在界面中用户会看到一条评论,肉眼可以看的出界面变化。
(3)、逻辑控制器(Presenter
作为View与Model交互的中间纽带,处理与用户交互的负责逻辑,比如用户点赞功能,用户触发点赞功能,通过调取接口Presenter层获取数据赋值给model层然后返回给View层,使得View和Model之间没有耦合。
三、使用心得
MVP是MVC演变出来一种更合理、逻辑性更好的架构模式,并且扮演角色不同,MVC中activity是控制层,所有代码逻辑都在其中编写所以代码会臃肿庞大,而MVP中正在实现model与view的完全分离,可以修改view而不影响model,而且层次更加分明、各司其职耦合城区更利于单元测试。

回复

使用道具 举报

友情链接

热点

返回列表 发新帖
您需要登录后才可以回帖 登录

本版积分规则

Copyright © 2018 SAMIM.All Rights Reserved

快速回复 返回顶部 返回列表