标签:显示 入口 用户 系统配置 用户id 时间 业务逻辑 tle 金字塔
最近做一个项目,在项目搭建之前,花了些许时间去思考一下如何搭建一个合适的架构。一开始的构思是希望能合理的把应用的各部分进行分离,使其像金字塔一样从上往下,下层为上层提供功能。
在平常项目中,总是有很多应用级的变量,如果不合理存放,势必在项目变得越来越庞大的时候难以掌控。所以我基于这一关键点出发,定义出了第一层:配置层。
基于配置层,我继承出总共5层,先把我的架构图贴上:
【系统配置层】
配置层负责存储应用内的通用变量,也就是可以在应用内多个界面或者模块中使用到的变量都会在这里预先配置,例如我会配置如下的变量:
(1)应用Application实例
(2)当前activity实例
(3)首页activity实例
(4)第三方SDK的Key
(5)当前登陆用户ID
所以在这一层我会定义出多个类进行分类存放,其中每个类都没有通信关系:
【数据存储层】
这一层通常定义一些应用内本地持久化存储的功能,因为一些小项目有时候不会要求做缓存功能,所以这一层可以为空,如果有通常我会定义一些功能如下:
(1)登陆账号存放功能,可以插入账号,然后把用过的账号列表拿出来
(2)某些功能模块的缓存,例如商品首页的数据缓存放在这里,可以无网的时候显示
(3)存放账号登陆后的一些个人信息,个人名称、手机号码等等
【系统API层】
这一层是比较重要的一层,包含了整个应用的业务逻辑功能,所以模块的功能都在这里体现,界面只是直接调用这一层的功能进行数据渲染,系统API层内部会定义很多基础功能,例如网络请求、JSON解析等待,然后封装这些功能,对外提供各种业务逻辑的实现。这一层可以根据自己的架构设计,在这一层内部进行细分,从而编写适合自己项目的内部架构。
(1)账号功能:登陆功能、忘记密码、注册帐号
(2)商品模块:获取商品列表、获取商品详情
上面的图中,ServerFace、ServerLogin就是对外提供的业务逻辑实现,封装得相当完善,下层只需要调用就可以获取想要得数据。毫不夸张的说,这一层相当于在控制台运行的APP,通过指令获取想要的数据,之后你的数据可以自由发挥渲染到界面上去。
【系统应用层】
这一层很好理解,就是应用的界面层,每一个界面都是独立,界面调用系统应用层的数据进行渲染。
这一层内,我根据自己实际需要,在BaseActivity定义了逻辑,例如Activity启动的时候,将当前实例赋值到配置层的当前启动Activity变量中。
【系统启动层】
这一层相当简单,其实就是Application实例入口,简单的项目Application内通常只有一些初始化的代码,例如将Application实例存放到配置层的变量中。
标签:显示 入口 用户 系统配置 用户id 时间 业务逻辑 tle 金字塔
原文地址:https://www.cnblogs.com/nicojerry/p/10337193.html