互联网分层架构的本质,是数据的移动。
创新互联公司专注于新巴尔虎右网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供新巴尔虎右营销型网站建设,新巴尔虎右网站制作、新巴尔虎右网页设计、新巴尔虎右网站官网定制、成都小程序开发服务,打造新巴尔虎右网络公司原创品牌,更为您提供新巴尔虎右网站排名全网营销落地服务。
互联网分层架构演进的核心原则:让上游更高效的获取与处理数据(复用),让下游能屏蔽数据的获取细节(封装)。
不管数据怎么移动,最终都会汇聚到客户端。服务端的分层架构设计已经讲了很多,客户端的分层架构设计应该怎么玩呢,服务端的分层架构设计是否有能够借鉴的地方呢,今天和大家简单聊一聊。
先来看小诗一首:
上面,是团队中一个文艺Android程序员的自述,表达的核心观点是:几乎所有代码都写在了Activity里(不理解Activity的,暂且认为是MVC里的view层),完全没有封装和复用。
更具体的例子,微信登录的界面,点击登录按钮,此时可能要执行:
如果把这些都写在微信“登录Activity”里,会发现一些很严重的问题:
假设产品里有一个“离线后重新登录”的功能,步骤与登录相同,就需要把上述在“重新登录Activity”里代码复制一遍。
又假设产品里有一个地方需要“拉取用户信息”,也将把“登录Activity”里“拉取用户信息”的代码复制一遍。
封装复用的道理谁都懂,拷贝代码的坏处也谁都明白,那为什么大家还这么做,让代码越来越“腐烂”呢,根据个人经验,主要是这么几点原因:
不管历史原因,项目原因,个人的原因,大家都知道分层抽象,代码复用是正确的,那有什么方案能够将这个分层抽象落地,从后端的分层架构中是否有可借鉴的地方呢?
一个典型业务系统的后端架构如上:
APP端的分层架构不是非常相似么?还是以登录业务为例:
(1) 登录Activity有两个按钮,一个确认按钮,一个取消按钮,这两个按钮的点击,分别只能调用一个函数:
这里相当于展现层,除了交互与展现,View层只能调用这两个函数
(2) 这两个函数的实现,是通过若干可复用的“原子业务逻辑”函数实现的
这相当于服务层,实现业务逻辑,提供封装和复用
(3) “原子业务逻辑”函数执行的过程中,需要访问数据,数据的获取又分为两类:
这里相当于数据层,向上游屏蔽数据获取的复杂性,分别用不同的Proxy去实现
在这种结构下:
互联网分层的架构的本质,是数据的移动,分层架构封装复用的思想,前后端有共通的地方。明明知道要封装和复用,为何实现起来如此的困难呢?
Activity里一坨坨复杂的代码,也是你曾经的痛么?
【本文为专栏作者“58沈剑”原创稿件,转载请联系原作者】
戳这里,看该作者更多好文
网站名称:APP分层架构设计随想
标题链接:http://www.mswzjz.cn/qtweb/news48/493498.html
攀枝花网站建设、攀枝花网站运维推广公司-贝锐智能,是专注品牌与效果的网络营销公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 贝锐智能