使用MVP结构开发时,从服务器获取的数据应该保存在presenter中还是放在activity中

林阿婆 2016-12-08 02:29:46
初学MVP模式,原本我是都保存在presenter中,比如一个list,从服务器获取,包括之后UI对这个list的增删改查(拥有这个presenter的activity会不断地对这个list进行一些操作)都在presenter中操作并存放在presenter中,activity完全不存放任何数据。写到一半突然想到当内存不足时,presenter会不会被置空?那其中的数据就没了?
所以应该是保存在activity中,还是保存在presenter中没有问题?
...全文
407 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
LoveWyf_ 2016-12-15
  • 打赏
  • 举报
回复
你想的太多了 怎么可能是当全局变量?接口回调直接传递啊
林阿婆 2016-12-14
  • 打赏
  • 举报
回复
引用 7 楼 qq_25412055 的回复:
Activity是完全看作View来使用,数据你可以放在model中,也可以放在presenter中。model你可以只是当做一个bean实例,可以当做一个数据的处理,用presener来将model view关联
如果放在presenter或者model中,不是类似于把全局变量随便放在了一个类中而没有放在application中(当然放在application里也 不安全,相比较一个普通的类它会更安全一些),很容易被置空而报 nullpoint 吗?我对 GC 理解不够深,也是因为项目之前的开发人员随便把变量放在一个类里,导致各种 nullpoint 才知道的。难道 presenter 或者 model 要做其他特殊的处理吗?
LoveWyf_ 2016-12-10
  • 打赏
  • 举报
回复
Activity是完全看作View来使用,数据你可以放在model中,也可以放在presenter中。model你可以只是当做一个bean实例,可以当做一个数据的处理,用presener来将model view关联
blanks.w 2016-12-08
  • 打赏
  • 举报
回复
引用 5 楼 l346397807 的回复:
[quote=引用 3 楼 q849340003 的回复:] 我个人觉得 简单的应用没必要 去用什么什么设计模式,完全没必要,基本符合mvc思想就好了 没必要刻意去追求什么模式,你编写的程序符合java规范 高内聚低耦合等即可,除非你开发的应用上了一定规模,很复杂,不考虑架构没法保证程序的稳定性了才去考虑需要用什么架构!不过一般应用基本不需要考虑这些问题,有这个思想是对的 但也要根据实际需求来灵活变化
如果是做个demo或者演示app不需要考虑架构之类的,一般公司的产品或者项目都是要有一个规定的模式的,这样也有利于多人协作开发[/quote] 看你自己理解吧 我只是表达下我自己的观点,各种模式的适用无非是为了解耦,提高代码可复用,方便定位问题。但是一般大型项目,多人协同才会需要去考虑设计模式,一般小型项目 自己完全能hold住的话 编写的代码我是觉得只要符合 解耦,提高代码可复用,方便定位问题等java编程的思想,没必要非得套一个设计模式上去
l346397807 2016-12-08
  • 打赏
  • 举报
回复
引用 3 楼 q849340003 的回复:
我个人觉得 简单的应用没必要 去用什么什么设计模式,完全没必要,基本符合mvc思想就好了 没必要刻意去追求什么模式,你编写的程序符合java规范 高内聚低耦合等即可,除非你开发的应用上了一定规模,很复杂,不考虑架构没法保证程序的稳定性了才去考虑需要用什么架构!不过一般应用基本不需要考虑这些问题,有这个思想是对的 但也要根据实际需求来灵活变化
如果是做个demo或者演示app不需要考虑架构之类的,一般公司的产品或者项目都是要有一个规定的模式的,这样也有利于多人协作开发
l346397807 2016-12-08
  • 打赏
  • 举报
回复
引用 2 楼 u014370672 的回复:
[quote=引用 1 楼 l346397807 的回复:] 你的m层用来做什么 不是m获取数据(网络or db) v展示数据 p 是v和m的桥梁吧
m是获取数据的,m获取一个list的内容,p把这个内容展示在v上,v对这个list会有改动,改动完成按了提交p再将list传给m,m再保存到服务器[/quote] Android 的组件中,Activity 对象往往是在堆(Java Heap)里占最多内存的,系统会优先回收Activity对象,如果有Activity Leak,APP很容易因为内存不够而 OOM。MVP模式,只要在当前的Activity的onDestroy里,分离异步任务对Activity的引用,就能避免Activity Leak。 所以数据还是在P层,P层调用V层,加一些非空判断,防止空指针,我们目前是这么做的
blanks.w 2016-12-08
  • 打赏
  • 举报
回复
我个人觉得 简单的应用没必要 去用什么什么设计模式,完全没必要,基本符合mvc思想就好了 没必要刻意去追求什么模式,你编写的程序符合java规范 高内聚低耦合等即可,除非你开发的应用上了一定规模,很复杂,不考虑架构没法保证程序的稳定性了才去考虑需要用什么架构!不过一般应用基本不需要考虑这些问题,有这个思想是对的 但也要根据实际需求来灵活变化
林阿婆 2016-12-08
  • 打赏
  • 举报
回复
引用 1 楼 l346397807 的回复:
你的m层用来做什么 不是m获取数据(网络or db) v展示数据 p 是v和m的桥梁吧
m是获取数据的,m获取一个list的内容,p把这个内容展示在v上,v对这个list会有改动,改动完成按了提交p再将list传给m,m再保存到服务器
l346397807 2016-12-08
  • 打赏
  • 举报
回复
你的m层用来做什么 不是m获取数据(网络or db) v展示数据 p 是v和m的桥梁吧

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧