软件分层架构理解【小白专用】
来源:互联网 发布:熊猫加速器mac 编辑:程序博客网 时间:2024/06/05 05:05
软件分层架构简述
编辑整理于:2017年5月22日16:49:21 KTNAIT丶
自己也是小白一个,参考了一些文档,这也就当作是自己的简单理解笔记了。
缘起
在解决一个比较复杂的问题的时候,我们通常使用的一个技巧就是分解,也就是把一个复杂的问题分解成为若干个简单的问题来进行处理,这样要比解决一个复杂的问题简单。
那么同理,在设计一个复杂的软件系统的时候,我们也通常使用的一个技术就是分层,每个层只负责完成自身的功能,最后,所有的层整合起来构成一个复杂的软件系统。
在应用软件开发中,N层应用软件模型是一种典型的软件系统架构,也就是所谓的分层架构。N层的应用软件系统,由于其众多的优点,已经成为典型的软件系统架构,也已经成为构建企业软件的标准。 其中最典型的也就是三层架构。
分层也是计算机技术中的常用方法,一个典型的例子就是TCP/IP技术的OSI七层模型。
软件分层架构优点
分层的程序设计带来的好处是显而易见的
1.高内聚低耦合,便于团队开发
内聚:一个模块内各个元素彼此结合的紧密程度;
耦合:一个软件结构内不同模块之间关联程度的度量。
在团队开发中,分层可以让软件开发人员专注于自己负责的层,而不必关心其他层的设计,也不必担心自己的设计会影响其它层。如果不分层,根本不可能进行团队开发,只会一团糟。
2.使软件升级和维护更为容易
分层设计使得程序结构清晰,升级和维护都变得十分容易,更改层的具体实现代码,只要层接口保持稳定,其他层可以不必修改。即使层的接口发生变化,也只影响上层和下层,修改工作量小而且错误可以控制,不会带来意外的风险。
软件分层架构缺点
“金无足赤,人无完人”,分层式结构也不可避免具有一些缺陷:
1.降低系统性能
如果不采用分层式结构,很多业务可以直接造访数据库,以此获取相应的数据,如今却必须通过中间层来完成。
2.有时会导致级联的修改
有时会导致级联的修改。这种修改尤其体现在自上而下的方向。如果在表示层中需要增加一个功能,为保证其设计符合分层式结构,可能需要在相应的业务逻辑层和数据访问层中都增加相应的代码。
3.代码量变多
分层后代码量自然要比不分层多。
软件分层架构的实现
只要修改任意一层,不会影响到其它层,升级和维护容易,那就达到了分层的目的。
阅读全文
0 0
- 软件分层架构理解【小白专用】
- 原型链---小白专用
- Github使用方法--小白专用
- Redis安装方法(小白专用)
- MySQL基本命令梳理--小白专用
- 我理解的软件 架构模式,MVC和分层
- Android 数据库升级详解,初级小白专用。
- 微信小程序支付,微信支付【小白专用】
- 【软件架构】网站架构中的分层思想
- 软件架构模式之分层架构
- 软件架构模式之分层架构
- 也谈软件架构及分层
- 软件系统架构中的分层思想
- 软件架构之分层模式(Layered Architecture)
- 运行vs时会出现的一些小错误(不断更新,小白专用)
- 阿里云+wordpress搭建个人博客网站【小白专用的图文教程】
- C++顺序列表数据结构(值得深究)小白专用,高手绕道
- 阿里云+wordpress搭建个人博客网站【小白专用的图文教程】
- Linux文件系统
- 2017-05-22
- Oracle 11g R2静默安装
- The reference to entity "characterEncoding" must end with the ';' delimiter. ,url中的&转义
- mysql学生成绩排名,分组取前 N 条记录
- 软件分层架构理解【小白专用】
- 使用freemarker生成复杂的excel表格
- 从零开始写javaweb框架笔记13-搭建轻量级JAVAWEB框架-开发一个类加载器
- 九度1028:继续畅通工程
- 高并发服务器架构笔记(3)——muduo_base 源码分析
- 根据多个索引高效删除python list中对应位置的元素
- pyhton 数据预处理 数据读取与存储 csv
- Struts 2基础入门
- 【个人笔记重点,不作为参考】主题:restify搭建模拟RESTful API