ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

第303篇 MVP 实践:Presenter 的职责与回调地狱

第303篇 MVP 实践:Presenter 的职责与回调地狱

承接上一篇《MVC 在 Android 的落地:Activity 的双重身份问题》,那一篇指出了 Activity 职责混杂的问题,这一篇给出第一种解法:MVP。MVP 的价值不在于「多了一个 Presenter 类」,而在于它第一次把「可测试的纯逻辑」从 Android 框架里分离出来。

结论先行:MVP 的核心不是分层,而是「Presenter 能不能不碰任何 Android 类地被单测」。如果你的 Presenter 里 import 了android.content.Context、用到了Handler或者需要Activity才能创建,那 MVP 只是换了个文件放代码,分层的收益并没有拿到。

一、Presenter 的职责边界

MVP 里 Presenter 的职责可以用一句话概括:接收 View 转发的用户意图,调用 Model,把结果翻译成 View 能执行的动作。

这个职责可以拆成三件明确的事:

Presenter 该做Presenter 不该做
判断与分支(是否可以提交、错误怎么提示)操作具体控件(setText、setVisibility)
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进