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。

更多相关文章

  1. android TextView的字体颜色设置的多种方法(转)
  2. Android(安卓)studio如何运行java程序代码
  3. Android之设置横屏竖屏
  4. android通过C#的webservice与服务端进行数据通信(sqlserver)
  5. android textview 文本在代码中设置粗体效果
  6. Android实现显示电量的控件代码
  7. (二)在Android硬件抽象层增加接口模块访问硬件驱动程序
  8. android TabHost(选项卡)的使用方法发布
  9. [Android]只显示月和日的DatePickerDialog

随机推荐

  1. Android(安卓)汉字转拼音
  2. 网络请求工具类HttpUtils
  3. Android笔记之使用Toast
  4. Android(安卓)Studio “Cannot create di
  5. android 运用百度地图画轨迹
  6. Android编译问题
  7. 广播机制 笔记
  8. adb使用wifi无线连接调试Android设备
  9. Android(安卓)图片添加水印
  10. HttpURLconnection上传数据