构建Android程序是需要有创造力的。多Activity和fragment之间的数据传输,远程数据获取,数据持久化,同时保持组件之间无耦合,可测试,可维护。
以下是几条遵循的准则
一、在manifest中定义Activity、service、broadcastreceiver不能作为数据源
不能把数据保存在这里组件里头,只能用作展示协调跟这些entry points相关的data。因为这些entry points的生命周期往往是很短的。而且Activity按照MVP MVVM MVC都不适合放data的。
二、各模块间责任分明,无耦合
例如,不要将代码从网络加载到代码类中的多个类或包中。同样,不要将无关的责任(如数据缓存和数据绑定)放入同一个类中。现在的应用往往有很多人一起开工,低耦合可以提高开发效率。
三、模块高度内聚
不要抱着偶尔写一段“快捷方式”,而将模块内部实现细节公开。你可能会短期内减少时间,但在未来在你打算进行代码更新升级一定会多次为这个‘快捷方式’付出更多的时间。高内聚跟低耦合是一样的道理。
四、在你定义module之间接口定义时,要考虑到如何让每个module可以被独立隔离测试
例如,有一个借口定义良好的从网络获取数据的API就可以更简单地测试本地持久化的local databases。相反,如果把持久化数据库的代码跟网络部分的代码混合那就很麻烦了。单元测试很重要。
五、不要把你的时间浪费在重新造轮子上
集中你的精力让你的应用程序的独特业务功能,充分利用framework和第三方libs。这是一种理念。充分利用公共资源。
六、尽量将最新相关数据持久化
这样如果设备无法联网,这可以保持一定可操作性。持久化跟网络的合理配合可以让应用更加流畅。
七、数据源有且只有一个
只有这样才能保证你的数据一致性