首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >大型可定制工具应用程序的Android体系结构

大型可定制工具应用程序的Android体系结构
EN

Stack Overflow用户
提问于 2016-09-19 15:13:13
回答 2查看 187关注 0票数 3

背景:

我已经开发了一个用于配置物理设备的工具应用程序,目前它支持一个设备。它是用标准Android使用RxJavaDagger编写的,并不实现架构模式。

任务:

该应用程序应该能够支持3个额外的设备。用户可以在设备之间进行选择,根据设备的不同,功能也会有所不同。这意味着,在某些视图中,需要显示其他选项,而对于某些设备,则需要删除选项。

问题是:

我需要重构这个应用程序,使它可以增加额外的设备被添加,并使它可测试,但我还不知道如何为即将到来的变化构建应用程序。作为架构的一种方式,我想使用MVVM还是MVP,但是我还没有决定哪种模式更适合我的需求,因为我对两者都没有很好的了解。

我打算这样做:

  • 创建一个单例调用DeviceConfiguration,它将跟踪当前选定的设备,并知道哪个设备能够实现哪些功能。
  • 创建一个名为Device的接口,所有设备类都将实现该接口,定义所有设备的基本最小方法。
  • 当用户切换到另一个Activity时,DeviceConfiguration将检查当前选择的设备,并将为视图/演示器/视图模型设置正确的设备。
  • 在活动开始时,onCreate中的安装方法将从DeviceConfiguration提供的数据中显示/隐藏设备可用的选项。
  • 单击屏幕中的某个位置将调用Device.doSomething(),它将使用开始时设置的设备,并使用设备特定的调用(虽然我还不确定如何处理它,如果设备没有此功能,那么仍然实现调用并将方法保留为空?)

问题:

这就是我想要的,但是这会是一个很好的结构来处理不同设备的类似功能吗?是否有可能用这种设置测试应用程序,或者为适当的设备创建自己的活动/布局是否更好?如果不仅是数据,而且布局中的一般内容和视图都需要动态更改,我特别不确定这是否适用于MVVM

我正在寻找良好的做法,使应用程序更清洁和更好的测试,任何建议都是赞赏的。

EN

Stack Overflow用户

发布于 2016-09-24 15:18:58

我建议您查看Android架构蓝图存储库。它是由谷歌提供的,您有MVP和MVVM架构实现的示例,包括/不包含Dagger2和RxJava。您还可以查看莫斯比库。如果你是初学者,学习一些已被证实的实现要比用你的解决方案更好。

票数 2
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39576566

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档