zoukankan      html  css  js  c++  java
  • 分层体系架构模式

    分层体系架构模式模式也称为多层体系架构模式。它可以用来构造可以分解为子任务组的程序,每个子任务都处于一个特定的抽象级别。每个层都为下一个提供更高层次服务。在分层架构中的组件被划分成几个层,每个层代表应用的一个功能.分层架构本身没有规定要分成多少层,大部分的应用会分成表现层,业务层,持久层和数据库层.小的应用有时候会将业务层和持久层合在一起,更大规模的应用可能会划分更多的层,比如调用外部服务的层.分层架构的一个特性就是关注分离(separation of concerns).在层中的组件只负责本层的逻辑.组件的划分很容易让它们实现自己的角色和职责,也比较容易地开发,测试管理和维护.

    一般信息系统中最常见的是如下所列的4层。

    • 表示层(也称为UI层):用户界面,负责视觉与用户互动
    • 应用层(也称为服务层)
    • 业务逻辑层(也称为领域层):实现业务逻辑
    • 数据访问层(也称为持久化层):提供数据,SQL语句就放在此层

    使用场景:

    • 一般的桌面应用程序
    • 电子商务Web应用程序

                            Layered pattern

    关键概念

    注意每一层都是封闭的.这意味着Request必须经过每一层才能到达最底下一层.


    为什么不允许展示层直接访问数据库层呢,这样不是更快吗?这就是分层架构的另一个特征:层隔离(layers of isolation).
    层隔离的概念意味着你对任何一层的改变都不会影响其它层,这很好理解.层隔离也意味着一个层的组件并不会了解其它层的实现,或者知道很少. 比如业务层不需知道你持久层是由hibernate还是mybatis实现的.
    分层架构也很容易增加新的层. 比如你想将一些通用的服务重构成一个服务层,比如通用图片处理,远程账户审计等,可以在业务层下增加一个服务层.它不会对展示层造成影响,也不会改变持久层的代码.
    上面的这个例子带来一个问题,因为每一层是封闭的,业务层不得不通过服务层访问持久层. 所以有时候可以创建一个开放的层.这意味着上一层可以绕过这一层直接访问下一层。

                           

    模式分析

    • 总体灵活性: 低
    • 发布易用性:低
    • 可测试性: 高
    • 性能:低
    • 规模扩展性: 低
    • 开发容易度: 高

    优点

    • 结构简单,容易理解和开发
    • 不同技能的程序员可以分工,负责不同的层,天然适合大多数软件公司的组织架构
    • 每一层都可以独立测试,其他层的接口通过模拟解决
    • 一个较低的层可以被不同的层所使用。层使标准化更容易,因为我们可以清楚地定义级别。可以在层内进行更改,而不会影响其他层
    缺点
    • 一旦环境变化,需要代码调整或增加功能时,通常比较麻烦和费时
    • 部署比较麻烦,即使只修改一个小地方,往往需要整个软件重新部署,不容易做持续发布
    • 软件升级时,可能需要整个服务暂停
    • 扩展性差.用户请求大量增加时,必须依次扩展每一层,由于每一层内部是耦合的,扩展会很困难
    • 不是普通适用的。在某些情况下,某些层可能会被跳过
  • 相关阅读:
    MyEclipse WebSphere开发教程:WebSphere 7安装指南(四)
    【DevExpress v17.2新功能预告】增强ASP.NET TreeList
    MyEclipse WebSphere开发教程:WebSphere 7安装指南(三)
    【DevExpress v17.2新功能预告】增强ASP.NET GridView的功能
    MyEclipse WebSphere开发教程:WebSphere 7安装指南(二)
    css如何设置首行文字缩进?
    css可以修改超链接颜色吗?
    css如何将图片横向平铺?
    CSS三种布局模型是什么?
    css怎么样设置透明度?
  • 原文地址:https://www.cnblogs.com/zhangjiabei/p/9067990.html
Copyright © 2011-2022 走看看