- 1、本文档共39页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
第13章层次式架构设计理论与实践
层次式架构是软件体系结构设计中最为常用的一种架构形式,它为软件系统提供了一种在结构、行为和属性方面的高级抽象,其核心思想是将系统组成为一种层次结构,每一层为上层服务,并作为下层客户。本章重点介绍了层次式架构中的表现层、中间层、访问层和数据层的体系结构设计技术,给出了层次式架构的案例分析。
13.1层次式体系结构概述
软件体系结构可定义为:软件体系结构为软件系统提供了结构、行为和属性的高级抽象,由构成系统的元素描述、这些元素的相互作用、指导元素集成的模式以及这些模式的约束组成。软件体系结构不仅指定了系统的组织结构和拓扑结构,并且显示了系统需求和构成系统的元素之间的对应关系,提供了一些设计决策的基本原理,是构建于软件系统之上的系统级复用。
软件体系结构贯穿于软件研发的整个生命周期内,具有重要的影响。这主要从以下三个方面来进行考察。
(1)利益相关人员之间的交流。软件体系结构是一种常见的系统抽象,代码级别的系统抽象仅仅可以成为程序员的交流工具,而包括程序员在内的绝大多数系统的利益相关人员都借助软件体系结构来作为相互沟通的基础。
(2)系统设计的前期决策。软件体系结构是我们所开发的软件系统最早期设计决策的体现,而这些早期决策对软件系统的后续开发、部署和维护具有相当重要的影响。这也是能够对系统进行分析的最早时间点。
(3)可传递的系统级抽象。软件体系结构是关于系统构造以及系统各个元素工作机制的相对较小、却又能够突出反映问题的模型。由于软件系统具有的一些共通特性,这种模型可以在多个系统之间传递,特别是可以应用到具有相似质量属性和功能需求的系统中,并能够促进大规模软件的系统级复用。
分层式体系结构是一种最常见的架构设计方法,能有效地使设计简化,使设计的系统机构清晰,便于提高复用能力和产品维护能力。
层次式体系结构设计是将系统组成一个层次结构,每一层为上层服务,并作为下层客户。在一些层次系统中,除了一些精心挑选的输出函数外,内部的层接口只对相邻的层可见。连接件通过决定层间如何交互的协议来定义,拓扑约束包括对相邻层间交互的约束。由于每一层最多只影响两层,同时只要给相邻层提供相同的接口,允许每层用不同的方法实现,同样为软件重用提供了强大的支持。
软件层次式体系结构是最通用的架构,也被叫作N层架构模式(n-tierarchitecturepattern)。
这也是JavaEE(也称为J2EE)应用经常采用的标准模式。这种架构模式非常适合传统的IT通信和组织结构,很自然地成为大部分应用的第一架构选择。在分层次体系结构中的组件被划分成几个层,每个层代表应用的一个功能,都有自己特定的角色和职能。分层架构本身没有规定要分成多少层,大部分的应用会分成表现层(或称为展示层)、中间层(或称为业务层)、数据访问层(或称为持久层)和数据层。其结构见图13-1所示。
分层架构的一个特性就是关注分离(separationofconcerns)。该层中的组件只负责本层的逻辑,组件的划分很容易明确组件的角色和职责,也比较容易开发、测试、管理和维护。
当然,小的应用有时候会将业务层和持久层合在一起,更大规模的应用可能会划分更多的层,比如:增加调用外部服务的层等。
层次式体系结构是一个可靠的通用的架构,对很多应用来说,如果不确定哪种架构适合,可以用它作为一个初始架构。但是,设计时要注意以下两点:
(1)要注意的是污水池反模式。所谓污水池反模式(architecturesinkholeanti-pattern),就是请求流简单地穿过几个层,每层里面基本没有做任何业务逻辑,或者做了很少的业务逻辑。比如一些JavaEE例子,业务逻辑层只是简单的调用了持久层的接口,本身没有什么业务逻辑。
每一层或多或少都有可能遇到这样的场景,关键是分析这样的请求的百分比是多少。二八原则可以帮助你决定是否正在遇到污水池反模式。如果请求超过20%,则应该考虑让一些层变成开放的。
(2)需要考虑的是分层架构可能会让你的应用变得庞大。即使你的表现层和中间层可以独立发布,但它的确会带来一些潜在的问题,比如:分布模式复杂、健壮性下降、可靠性和性能的不足,以及代码规模的膨胀等。
13.2表现层框架设计
13.2.1表现层设计模式
1.MVC模式
MVC是一种目前广泛流行的软件设计模式。近年来,随着JavaEE的成熟,MVC成为了JavaEE平台上推荐的一种设计模式。MVC强制性地把一个应用的输入、处理、输出流程按照视图、控制、模型的方式进行分离,形成了控制器、模型、视图三个核心模块。
(1)控制器(Controller)
您可能关注的文档
- 系统架构师(第2版)第20章 系统架构设计师论文写作要点.docx
- 系统架构师(第2版)第19章 大数据架构设计理论与实践.docx
- 系统架构师(第2版)第18章 安全架构设计理论与实践.docx
- 系统架构师(第2版)第17章 通信系统架构设计理论与实践.docx
- 系统架构师(第2版)第16章 嵌入式系统架构设计理论与实践.docx
- 系统架构师(第2版)第15章 面向服务架构设计理论与实践.docx
- 系统架构师(第2版)第14章 云原生架构设计理论与实践.docx
- 系统架构师(第2版)第12章 信息系统架构设计理论与实践.docx
- 系统架构师(第2版)第11章 未来信息综合技术.docx
- 系统架构师(第2版)第10章 软件架构的演化和维护.docx
- 10《那一年,面包飘香》教案.docx
- 13 花钟 教学设计-2023-2024学年三年级下册语文统编版.docx
- 2024-2025学年中职学校心理健康教育与霸凌预防的设计.docx
- 2024-2025学年中职生反思与行动的反霸凌教学设计.docx
- 2023-2024学年人教版小学数学一年级上册5.docx
- 4.1.1 线段、射线、直线 教学设计 2024-2025学年北师大版七年级数学上册.docx
- 川教版(2024)三年级上册 2.2在线导航选路线 教案.docx
- Unit 8 Dolls (教学设计)-2024-2025学年译林版(三起)英语四年级上册.docx
- 高一上学期体育与健康人教版 “贪吃蛇”耐久跑 教案.docx
- 第1课时 亿以内数的认识(教学设计)-2024-2025学年四年级上册数学人教版.docx
最近下载
- 6.2交友的智慧 课件-2024-2025学年道德与法治七年级上册(统编版2024).pptx VIP
- (完整版)高中生物知识点总结(完整版).pdf
- 浙江省上虞实验中学2020-2021学年八年级上学期第一次月考数学试题(含解析).doc
- 环保涂料建设项目环境影响报告书.pdf
- 重难点专题02 函数值域与最值十四大题型汇总(解析版).docx VIP
- 6.1友谊的真谛 课件 2024-2025学年七年级道德与法治上册 统编版2024.pptx VIP
- 《公司治理学》(李维安第四版)教学全套课件.pptx
- 迷雾水珠 高清钢琴谱五线谱.pdf
- 湖南省长沙市长郡2024-2025学年高三上学期月考试卷(一)+英语试卷(含解析,含听力原文无音频).pdf VIP
- 6.1 友谊的真谛 【课件】2024-2025学年七年级上册道德与法治 统编版2024).pptx VIP
信息系统项目管理师持证人
(1)深耕智慧园区10年+ (2)IoT产品专家 (3)工业4.0领头羊 (4)就业咨询指导5年+ (5)方案输出百万字+
文档评论(0)