Android分层架构笔记

来源:互联网 发布:战地4网络对战 编辑:程序博客网 时间:2024/06/08 00:46

这里写图片描述

第1部分:核心原则

  • 让上游更高效的获取与处理数据(复用)。
  • 让下游能屏蔽数据的获取细节(封装)。

服务端的分层架构思想就是以此为原则进行封闭的,服务端屏蔽数据的获取,只管提供给客服端具体的数据,客户端同样不了解数据具体的获取方法,只管请求需要的数据即可。

第2部分:Android中的问题示例

  • 遇到有的项目把所有的逻辑都写到了Activity中,代码几千行,封装性很差,维护性更差。
  • 具体示例:获取验证码的逻辑,登陆需要有一个、注册也需要有一个、可能某块逻辑又增加一个验证手机号,同样的逻辑需要写好几个地方,十分的不方便维护。

第3部分:造成该结果的原因

  • 早期业务压力大,APP是少数几个同学的,没有提前做规划
  • 后期代码越来越臃肿,不敢动,一动怕影响功能,怕出问题,怕担责任
  • 项目中,是以功能界面进行编码划分的,一个同学会同时负责MVC三部分编码,加之项目压力又大,既然是一个人写,就没必要分层了,搞多了调用反而麻烦
  • 项目中,有个需求好像之前做过,代码一看,写在Activity里,纠结。抽象成函数?还得改别人的代码,算了,还是拷贝一份吧

第4部分:根据服务端分层架构思想设计客户端分层架构

1.服务端

  • 结构:web-server —-> biz-service —-> db
  • 说明:
    • web-server层调用RPC接口,从service层获取数据,拼装html/json,完成数据展现
    • biz-service/data-service向上游提供可复用的原子接口,实现业务逻辑,并层通过DAO层,从db层获取数据
    • db层提供数据

2.客户端

以用户登陆功能来说:

View层:LoginActivity
  • 上面有两个按钮,一个登陆,另一个是取消登陆。
Control层:
  • onLoginConfirmClick
    • bool vertifyPass(name, pass)
    • User getUserInfo(uid)
  • onLoginCancel
Model层(负责数据获取):

同步获取:

  • LocalDbProxy 数据库获取
  • LocalFileProxy 文件获取
  • LocalMemProxy 内存获取

异步获取:

  • ServerProxy 网络获取

第5部分:总结

在这种结构下:

  • 展现层会非常轻,只调用一个函数,用于展现数据。
  • “原子业务逻辑”可以复用,不同的展现层Activity可以随意组合,实现不同的业务逻辑,用于处理数据
  • Proxy对上游屏蔽的数据获取的复杂性,向上游提供数据获取接口,用于获取数据
阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 共有宗地面积是什么意思 宗地是什么意思 想不想修真宗门禁地 宗女 宗宁重宝 宗宁通宝图片和价格表 大明宗室 宗室嫡女 宗室 宗室家的小娘子 宗山小布达拉宫 宗帅 一代宗师 修真宗师 杂家宗师 横练宗师 民国宗师 全能宗师 归来的宗师 鉴宝大宗师 宗师奶爸 都市宗师 大唐宗师 鉴宝宗师 超武宗师 宗师之路 宗师 宗师手游 宗师宝典 宗师ol 太级宗师 宗师卜六 太急宗师 职业宗师 天才宗师 天下宗师 太及宗师 八极拳宗师 末世宗师 大极宗师 武术宗师