MVP的理解和使用


算了不想写了,直接上代码吧,实在是懒得写了,这也没有保存功能,服死了。
首先定义View :
[代码]java代码:
|
1
2
3
4
5
|
public interface MainView<t> { void initView(); void showData(T t);}</t> |
[代码]java代码:
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
public class MainActivity extends AppCompatActivity implements MainView<model>{ private MainPresenter mainPresenter; private TextView textview; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_mains); initView(); } @Override public void initView() { textview = (TextView) findViewById(R.id.textview); mainPresenter = new MainPresenter(this); mainPresenter.loadData(); } @Override public void showData(Model model) { textview.setText(model.getName()); }}</model> |
然后定义presenter:
[代码]java代码:
|
1
2
3
4
5
|
public interface Presenter<t> { void loadData(); void loadDataSuccess(T t); void loadFail();}</t> |
[代码]java代码:
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
public class MainPresenter implements Presenter<model>{ private MainView mainView; private MainModel mainModel; public MainPresenter(MainView mainView) { this.mainView = mainView; mainModel = new MainModel(this); } @Override public void loadData() { mainModel.getData(); } @Override public void loadDataSuccess(Model model) { mainView.showData(model); } @Override public void loadFail() { }}</model> |
最后是model的定义:
[代码]java代码:
|
01
02
03
04
05
06
07
08
09
10
11
|
public class Model { String name; public String getName() { return name; } public void setName(String name) { this.name = name; }} |
[代码]java代码:
|
01
02
03
04
05
06
07
08
09
10
11
12
|
public class MainModel { MainPresenter mainPresenter; public MainModel(MainPresenter mainPresenter) { this.mainPresenter = mainPresenter; } //从服务器中获取数据 public void getData(){ //这个方法主要是获取数据如果成功则调用MainPresenter的loadDataSuccess 方法 //如果失败就调用MainPresenter的loadFail()方法 }} |
从代码中可以看出model和view不会直接联系,都是通过presenter。各个分层更加明细。
刚刚发表了一篇,结果没有保存到,只能重新写了,麻烦可不可以做成没有提交上,就给用户保存的功能啊。
MVP的理解和使用的更多相关文章
- [原创]浅谈在创业公司对MVP的理解
[原创]浅谈在创业公司对MVP的理解 目前自已所处的公司类似一个创业平台,我们内部会不断的去孵化不同方向的产品,产品经理经常谈到的一个词就是MVP,所以有必需要去了解下什么是MVP? 1 什么是MVP ...
- android开发-mvp模式理解
看之前,先忘掉所有,一步步看就行了. 最后会有一个原型demo,当然是转的了.看完文章,再看demo,然后再回头看文章就很好理解了,最好自己写一遍. 1.mvp开发模式可以理解为页面接口编程,每一层的 ...
- MVP 个人理解2
根据我的理解,画了个图 这次又看了下 较复杂点的例子. 往往一个项目有多个部份,我们可以按功能分成几个activity, 每个activity有自己的view和数据model,因此也有自己的逻辑 pr ...
- MVP -----个人理解与示例(android例子 实现)
MVP 也就是Model View Presenter模式,是建立一个工程的一种模式. ======================================================== ...
- 关于MVC与MVP的理解
1. MVC的理解误区 理解误区: 1. 认为Model是指失血模型的实体类(Entity),是作为View和Controller之间的传输数据. 2. 把业务逻辑全部放在Controller端,认为 ...
- 一张图看Google MVP设计架构
这段时间看了一下Google官方推出的MVP架构案例,决定把对MVP的理解用类图的形式表述一下.MVP架构的设计思想确实非常值得学习,大家如果还不是很了解MVP,建议抽时间去研究研究,相信对大家的架构 ...
- Android MVP模式的初识
MVP是什么?或许在之前更多的人知道的是MVC这个模式(Model View Controller),然而MVP与MVC最不同的一点是M与V是不直接 关联的也是就Model与View不存在直接关系 ...
- 【转】MVP和MVC的区别
转自:http://www.cnblogs.com/end/archive/2011/06/02/2068512.html MVC和MVP到底有什么区别呢? 从这幅图可以看到,我们可以看到在MVC里, ...
- 结合实例分析Android MVP的实现
最近阅读项目的源码,发现项目中有MVP的痕迹,但是自己却不能很好地理解相关的代码实现逻辑.主要原因是自己对于MVP的理解过于概念话,还没有真正操作过.本文打算分析一个MVP的简单实例,帮助自己更好的理 ...
随机推荐
- hdu 5441
Travel Time Limit: 1500/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total Su ...
- BZOJ 2243 染色 树链剖分
题意: 给出一棵树,每个顶点上有个颜色\(c_i\). 有两种操作: C a b c 将\(a \to b\)的路径所有顶点上的颜色变为c Q a b 查询\(a \to b\)的路径上的颜色段数,连 ...
- [转] 在vue中使用SockJS实现webSocket通信
最近接到一个业务需求,需要做一个聊天信息的实时展示的界面,这就需要和服务器端建立webSocket连接,从而实现数据的实时获取和视图的实时刷新.在此将我的实现记录下来,希望可以给有同样需求的人一些帮助 ...
- day04_05 逻辑运算符、表达式
num += 1 等价于 num = num + 1 逻辑运算符 and 全true则true 条件1 and 条件2 5>3 and 3>2 ===> true 5> ...
- 零基础学习 Python 之数字与运算
写在之前 大家好,这里是零基础学习 Python 系列,在这里我将从最基本的 Python 写起,然后再慢慢涉及到高阶以及具体应用方面.我是完全自学的 Python,所以很是明白自学对于一个人的考验, ...
- Leetcode 481.神奇字符串
神奇字符串 神奇的字符串 S 只包含 '1' 和 '2',并遵守以下规则: 字符串 S 是神奇的,因为串联字符 '1' 和 '2' 的连续出现次数会生成字符串 S 本身. 字符串 S 的前几个元素如下 ...
- javascript学习笔记 - 引用类型 Date
三 Date new Date() 在不传递参数的情况下,新创建的对象自动获得当前日期和时间.参数接收毫秒的timestamp Date.parse() 接收表示日期的字符串,返回相应的日期毫秒数ti ...
- Set容器——TreeSet及常用API
TreeSet及常用Api ① TreeSet为使用树来进行存储的Set接口提供了一个工具,对象按升序存储,访问和检索很快; ② 在存储了大量的需要进行快速检索的排序信息的情况下,TreeSe ...
- 使用jackson解析JSON数据
本文介绍使用jackson来对json数据进行解析操作 首先,需要去官网下载jackson,本文使用的是(jackson-all-1.9.11.jar) 主要通过ObjectMapper对json进行 ...
- Welcome-to-Swift-04集合类型(Collection Types)
Swift提供了两种集合类型来存放多个值——数组(Array)和字典(Dictionary).数组把相同类型的值存放在一个有序链表里.字典把相同类型的值存放在一个无序集合里,这些值可以通过唯一标识符( ...