Effective Android(安卓)UI - MVP
16lz
2021-01-26
FROM: http://www.slideshare.net/PedroVicenteGmezSnch/effective-android-ui-english
MVP是一种软件设计模式,来自MVC,用于构建用户界面。其中,表示器需要实现全部展示逻辑和数据转换(为了发送适合的信息给视图)。作为UI层和业务逻辑层间的抽象。
MVP 主要解决的问题与测试、解耦、避免重复相关。
MVP 的使用提高了代码的可测试性,因为能够在不执行框架代码的情况下,测试所有的UI代码,仅需要进行单元测试就行。要实现这点,所有的展示逻辑都要转移到表示器中。
MVP的一个核心是让表示器中没有Android依赖。通过从表示器中移除所有Android依赖,就能让表示器的测试很容易。
使用MVP,Activity Fragment
和自定义视图需要实现一个表示器“视图”接口,然后配置为表示器的视图。
视图去包含“视图”接口中的实现代码,并关联用户动作和表示器。
“视图”接口抽象了表示器中要使用的视图的实现。
使用 MVP 还是得将组件的生命周期与表示器关联起来,以便表示器知道视图是否做好工作的准备。
如果需要的话,还需要一些方法来更新表示器,比如”onSavedInstanceState”。
要实现用户事件 - 比如按钮点击 - 实现接口的实现要将事件代理给表示器,由其进行决策。
对于Activity或Fragment中的导航实现,可以抽取为“导航器”。
使用导航器可以避免当用户动作导致Activity打开或者任务栈修改时,视图实现和表示器间的循环调用。
实现这一点,需要通过依赖注入注入 Activity Context。
更多相关文章
- android TextView的字体颜色设置的多种方法(转)
- Android(安卓)studio如何运行java程序代码
- Android之设置横屏竖屏
- android通过C#的webservice与服务端进行数据通信(sqlserver)
- android textview 文本在代码中设置粗体效果
- Android实现显示电量的控件代码
- (二)在Android硬件抽象层增加接口模块访问硬件驱动程序
- android TabHost(选项卡)的使用方法发布
- [Android]只显示月和日的DatePickerDialog