赞
踩
对于 Android 客户端的架构设计,可以从分层化和模块化来考虑。
目录:
1. 分层化
在 Android 客户端开发中,通常可以分成以下几层:
这里需要注意的是 SDK 层与基础框架层并不是一成不变的,但它们的变化周期往往是比较长的,一般来说当基础功能不能满足最上层的业务逻辑时,就需要对其做扩展。由于基础框架层的功能模块已经是功能级别的粒度划分,因此扩展往往是模块级别的扩展,通常是新增基础功能框架而不是修改原有基础功能框架,这也符合"开放-闭合"原则。
2. 模块化
至于模块化,对于分层化来说则是更细粒度的划分,即将每一层细分为不同的模块,各功能模块尽可能遵循"高内聚、低耦合"的原则,功能模块之间仅提供必要的交互接口。
对于基础框架层,由上图可见,往往是根据功能来划分。这里的基础框架层细分为网络支持功能、图片库、crash 系统、数据库支持等模块,如果不足以支撑业务发展,可能会新增其他基础功能模块。
而业务逻辑层则主要由业务需求来决定,如分为登陆、注册、商店等模块。业务逻辑层的模块化还有一种驱动因素,那就是通用功能的封装,这一点大家应该都有体会,随着 App 业务逻辑的增加,不同业务功能之间可能会用到相同的功能,如用户登录、注册功能等,我们不希望在每个需要的地方都复写一遍相关代码,于是就需要把通用功能抽取成独立于具体业务需求的模块,如登录模块、注册模块,在模块内部实现通用的业务逻辑,同时对外暴露调用接口,不同的业务只需调用通用模块即可。
3. 业务逻辑层设计
网络数据直接返回到 Activity 或 Fragment 中,后续需要对数据进行解析、过滤、转换、缓存等操作,这些工作将会大大加重Activity 或 Fragment 的负担。Activity 或 Fragment 的代码量猛增,逻辑繁杂 (不仅包含了 View 的逻辑还包含了数据处理的逻辑)。从整个应用的角度来看,每个页面甚至每个接口都需要重复上述相同的冗余工作,完全可以抽象出来。
可以选用目前主流的设计:Android应用篇 - MVC、MVP 和 MVVM,但是这种标准在不同项目中不一定都适用,得灵活选择。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。