mvp android会导致内存泄露吗?
MVP模式是Android上MVC模式的变种。要引入MVP,首先要引入MVC。在MVC模式中,活动应该属于视图层。本质上,它不仅承担视图,还包含一些控制器的东西在里面。这对开发和维护不是很友好,耦合度高。把活动的视图和控制器拿出来就变成了视图和呈现者,这就是MVP模式。在Android项目中,活动和片段占据了大部分开发工作。如果有一种设计模式(或者说代码结构)是专门为了优化活动和片段的代码而产生的,你觉得这种模式重要吗?这就是MVP设计模式。按照分层的MVC,Activity和Fragment(以下简称Activity only)应该属于视图层,它除了承担一些生命周期的工作之外,还用来显示UI界面,接收用户的输入。活跃度在Android开发中起着非常重要的作用,尤其是TA的生命周期功能。所以我们在开发的时候,往往会直接在活动中写一些业务逻辑,非常直观方便,代价是活动会越来越臃肿,超过1000行代码是常有的事。而且,如果某些业务逻辑可以通用(比如用户登录),那么把它写在特定的活动中,就意味着这个逻辑不能重用。如果你有代码重构的经验,看到一个1000+行的类肯定会很担心。所以Activity不仅承担了视图的角色,还承担了一部分控制器的角色,这样V和C就耦合在一起了。虽然这样写起来很方便,但是如果业务调整的话会很难维护,在臃肿的活动类里找业务逻辑的代码会很痛苦。因此,似乎有必要在活动中分离视图和控制器,这就是MVP模式的工作。