关于分层架构

身边的朋友喜欢分层架构,看到的一张张图都是分层的。分层从哪来的?

一个比较大的可能是受TCP IP 协议分层形式影响。学过网络基础课程的都应该对七层网络模型有印象。这个模型有点误导,咋看上去是层次结构,上层依赖下层,这么经典的体系结构都分层了,自己做的小破应用也应该向经典看齐,结果导致这种分层泛滥。

仔细理解七层网络模型,他描述的是协议实现软件吗?不是滴。这个模型说的是数据传输过程的层层封装,上层的数据被下层封装,不是协议软件的结构。

那协议软件的结构是什么样的?是分模块的,模块间有依赖关系。有哪些模块呢?一层一个模块,相邻层的模块有依赖关系。我没有在耍你,也不是在玩文字游戏。重点是处理上层逻辑的模块不依赖处理下层逻辑的模块,而是相反,下层依赖上层。没错,就是依赖倒置。举个例子。传输层依赖网络层吗?是的,传输层依赖网络层进行数据报文传输。但是,传输层依赖网络层的具体实现吗?传输层需要知道是IP数据报还是X.25?不需要,传输层只要定义网络层的抽象接口就好了。所以说网络层依赖传输层的抽象接口,下层依赖上层。

如果层层都是这样的关系,到底分成多少层重要吗?是否分层还重要吗?一点都不重要,完全没必要被层次的形式束缚。只要把职责垂直切分,形成模块,模块依赖另一个模块的抽象,你就获得灵活的结构。相反,受制于层次结构的束缚,硬生生的水平切分,你的到的永远是支离破碎的,僵化的结构,你永远无法说清层次间的边界,还会时不时地在层次间到处塞小层次。

如果你的层次里出现了core,manager,domain的字样,恭喜你,你在做水平切割的层次,好好跟小伙伴解释什么是core,什么不是core吧~~

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,025评论 25 709
  • 13.服务器图片改了,url没有变,需求,服务器的图片变了,就从服务器加载图片,如果服务器的没变,就从本地加载 1...
    AlanGe阅读 5,102评论 0 1
  • 版本记录 前言 在互联网行业中,不管你是客户端前端还是后台,只要是与网络相关,你就必须了解一些基础知识,包括这里的...
    刀客传奇阅读 5,899评论 0 16
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,492评论 11 349
  • 作者介绍冯宇飞 ,现任人人车Android客户端架构师。 本文回顾总结了人人车公司Android客户端的架构演进历...
    passiontim阅读 5,477评论 0 9

友情链接更多精彩内容