关于对软件的分层架构模式的理解
简介:
分层模式是最通用的架构,它也叫N层架构模式。这种架构是大多数Java EE 应用的实际标准,因此很多架构师、设计师,还有程序员都知道它。这种架构模式非常适合传统的IT通信和组织结构,很自然地成为大部分应用的第一架构的选择。
描述:
封层架构模式中的各个组件,垂直分布在不同层,每一层都承担一个角色。分层架构模式没有规定层的类型和数量,但是大多数的通常包括4层:表示层、业务层、持久化层和数据层。在某些具体情况下,业务层和持久化层也可以合二为一。所以,小程序往往只有三层,而大工程可以包括五层甚至更多。四个分层如下:
分层架构模式,把整个工程划分为不同的层,每一层都承担一个明确的职责和角色。下面介绍一下每一层的职责和角色:
表示层的职责是处理所有的用户接口、处理浏览器通信逻辑。平时体现在用户界面方面。
业务层的职责是执行用户请求所期望的业务逻辑。主要是为了实现业务逻辑。
持久化层的职责把持久的动作封装成一个独立的层,可以降低功能代码之间的关联。
数据层的职责是负责数据库的访问,可以访问数据库系统、二进制文件、文本文档或是XML文档。其实主要就是对数据表进行S、I、U、D。查询,插入,更新,删除。
分层架构模式的特性:风险分散在各个组件。某一层的各个组件只处理这一层承担的逻辑。比如,表示层的各个组件只处理表示相关逻辑,而业务层的各个组件只处理业务相关逻辑。这样更有易于构建架构中有效的角色和职责模型,也易于开发、测试、组织和维护工作。
关键概念:
架构中每一层都表示为“closed”,这是分层架构中重要的概念。一个“closed”的层,表示一个请求在层与层之间活动时,上面层来的请求必须穿越这一层才能达到下面的层。意思就是不可以跨层穿越,必须要一级一级才可以。这就是层的隔离。架构中的某一层的改变,并不会影响到其他层的组件。改变被隔离在本层的组件之间,或者可能影响另一个相关的层。如果允许两个层之间可以直接访问,那么会影响到两个层,会导致严重的耦合,不利于后期修改,而且会大大提高成本。
优点:
1.结构简单,容易理解和开发
2.不同技能的程序员可以分工,负责不同的层,适合大多数软件公司的组织架构
3.每一层都可以独立测试,其他层的接口可以模拟解决。
缺点:
1.一旦环境变化,需要代码调整或增加工能时,通常比较麻烦和费时
2.部署比较麻烦,即时只修改一个小地方,往往需要整个软件重新部署,不容易做持续发布。
3.软件升级时,可能需要整个服务停止。
4.扩展性差,用户请求大量增加时,必须一次扩展每一层,由于每一层内部是耦合的,扩展会很困难。