当前位置: 首页 > article >正文

13.2软件架构风格

一、软件架构风格 00:101. 软件体系结构风格概述 01:101软件体系结构风格定义 01:16领域特定模式描述特定应用领域中系统组织方式的惯用模式如穿衣风格日系/韩系/中式或建筑风格哥特式/中式园林系统家族定义包含架构定义、词汇表构件和连接件类型和组合约束三要素复用基础反映领域内众多系统共有的结构特性和语义特性如中式园林的共同元素核心目标实现架构级软件复用即直接复用整个架构设计方案2架构风格的作用与意义 01:47设计指导提供模块和子系统的有效组织方式如CS/BS架构风格混合应用允许系统采用多种风格组合类似穿衣混搭或装修混搭术语统一定义系统描述术语表和构建规则每种风格明确构件类型和连接方式实践验证经过验证的解决方案可可靠解决新问题如MVC风格的广泛应用3架构风格的核心要素 04:23构件与连接件明确系统功能单元构件及其交互方式连接件组合约束规定构件如何合法组合如管道过滤器风格的线性连接约束语义特性包含系统行为的含义层面特征区别于单纯结构特征领域共性捕获特定领域系统的共同设计特征如电商系统的购物车模式4架构风格的实践与理解 05:04考试重点定义中标注内容可能成为填空题考点如特定应用领域、语义特性等学习建议先建立形象理解通过穿衣/建筑类比再记忆标准定义分类体系基础分为数据流、调用返回、独立构件、虚拟机和仓库五大类扩展内容需补充学习层次风格CS/BS/MVC和面向服务架构等现代变体2. 软件架构风格分类 07:001数据流风格 07:47数据流风格的特点 07:50执行方式: 面向数据流按照固定顺序从前向后执行程序构建之间通过数据传递交互典型特征: 前一个构建执行完毕才能开始下一个构建的执行类似数据流图的走向应用场景: 适用于需要逐步处理数据的系统如编译器、流媒体处理等数据流风格的代表风格 08:09批处理序列: 构建为固定顺序的计算单元数据以整体方式传递管道-过滤器: 构建通过输入输出数据流连接前一个输出作为后一个输入2批处理序列 12:18构建特征: 由一系列固定顺序的计算单元组成每个处理步骤是独立程序执行要求: 必须前一步完全结束后才能开始下一步数据必须完整传递交互方式: 构建之间仅通过数据传递交互耦合度低典型示例: Windows批处理文件(.bat)、Linux shell脚本应用限制: 不适合需要实时处理或部分结果即可开始后续处理的场景3管道-过滤器 13:16构建组成: 过滤器(构建)通过管道(连接件)相连数据流动: 前一个过滤器的输出作为后一个过滤器的输入执行特点: 不需要等待前一个过滤器完全执行完毕可部分执行就开始后续处理典型应用:早期编译器架构流媒体处理(如视频边缓存边播放)与批处理区别:批处理: 构建前后不一定关联数据整体传递管道-过滤器: 前后数据流明确关联支持部分执行优势: 提高处理效率适用于实时性要求高的场景4调用/返回风格 16:04主程序/子程序 16:09控制方式: 采用单线程控制将问题划分为若干个处理步骤构件组成: 主程序和子程序作为构件子程序可合成为模块交互机制: 过程调用作为连接件通过参数和返回值传递数据调用特点: 属于显式调用主程序主动调用子程序完成功能典型示例: 函数调用过程如C语言中的main()函数调用其他子函数面向对象 17:06构件定义: 构件是对象即抽象数据类型的实例连接方式: 通过对象间的函数/过程调用实现交互调用特点: 对象通过方法调用实现功能如new对象后调用其方法封装特性: 对象封装数据和方法通过接口暴露功能典型示例: Java/C中的类实例化后调用成员方法层次结构 17:39结构特点: 构件组成层次结构如OSI七层模型交互规则: 只能与相邻层交互通过协议定义层间交互方式服务关系: 每层为上层提供服务使用下层服务修改影响: 修改某层最多影响相邻两层通常只影响上层抽象级别: 越靠近底层抽象级别越高如通用数据结构层优点问题分解: 支持基于可增加抽象层的设计分解复杂问题为增量步骤抽象隔离: 不同层次处于不同抽象级别底层更通用复用支持: 接口一致时允许各层独立实现支持软件复用维护便利: 修改影响范围可控只需保证接口不变缺点划分难度: 不是所有系统都容易分层需找到合适的抽象方法性能损耗: 调用需逐层传递如OSI模型数据封装/解封装设计挑战: 难以完美实现层间独立和单向服务关系效率问题: 分层越多调用链越长执行效率相应降低5独立构件风格 22:11进程通信 22:25构件特性: 构件是独立进程拥有独立PCB和资源连接机制: 通过消息传递实现交互区别于线程资源共享通信方式: 包括点对点、异步/同步、RPC等典型示例: 分布式系统中的进程间通信独立性: 强调进程间的完全独立不共享地址空间事件驱动系统隐式调用 23:26调用方式: 通过事件触发而非直接过程调用隐式调用注册机制: 构件过程在事件中注册事件触发时自动调用典型示例: 中断处理机制、GUI事件处理交互特点: 构件间无直接调用关系通过事件中介匿名特性: 构件是匿名过程通过事件隐式连接独立构件风格的主要优点 24:41复用支持: 为软件复用提供强大支持构件可独立演化维护便利: 构件可独立修改而不影响其他部分松耦合: 构件间依赖关系弱系统更灵活扩展性: 新构件只需注册事件即可加入系统独立构件风格的缺点 25:01控制缺失: 构件放弃对系统计算的控制权响应被动: 只能被动响应事件无法主动控制流程调试困难: 隐式调用导致执行流程难以追踪时序问题: 事件触发顺序可能影响系统行为6虚拟机风格 25:17解释器风格核心组件包含解释引擎执行解释工作、代码存储区存放待解释代码、状态记录器记录引擎工作状态和执行进度跟踪器记录源代码执行进度本质特征通过虚拟机仿真硬件执行过程与设计模式中的解释器模式概念相似但属于更高层次的架构抽象典型应用JVM虚拟机是典型案例实现Java语言的跨平台特性效率缺陷执行效率较低类比在Windows系统中运行虚拟机时性能下降的现象基于规则的系统系统组成包含规则集、规则解释器、规则/数据选择器和工作内存四大组件应用领域主要应用于人工智能领域和决策支持系统DSS区分要点与解释器风格相似但更强调规则驱动考试中通过人工智能、决策支持等关键词识别7仓库风格 28:01数据库系统核心架构中央共享数据源保存系统状态 多个独立处理单元操作数据元素运作特点所有操作围绕中心数据库展开体现以数据为中心的设计思想黑板系统三大组件知识源类似教师角色提供独立计算单元和解决方案知识黑板作为全局数据库展示问题域全部状态类比教室黑板展示知识控制模块协调知识源对黑板状态的响应和修改适用场景信号处理、问题规划和编译器优化等无确定性算法的领域超文本系统结构特征网状链接的节点组织方式支持非线性跳转类似HTTP超文本传输应用领域互联网领域的典型架构风格现代编译器实现开发风格现代IDE如Eclipse、VS采用数据仓库风格核心数据以程序语法树作为中心数据架构8闭环控制 30:43基本概念工作原理通过反馈循环接受输入→产生输出→监测环境状态→持续调节典型示例空调温控系统设定目标温度后持续监测调节、汽车巡航系统系统组成核心组件控制器、执行器、被控对象、反馈环节构成完整控制回路对比开环与开环系统的本质区别在于存在实时反馈调节机制9C2体系结构风格 33:16基本规则连接规范构件必须通过连接件交互禁止直接连接构件顶部连连接件底部底部连连接件顶部连接件间连接必须底部→顶部拓扑特征形成并行构件网络所有交互严格遵循预定规则3. 总结 35:071架构风格概述与重要性 35:15定义特性: 反映领域中众多系统共有的结构和语义特性强调对架构设计的重用解题技巧: 掌握各风格的关键字和简介即可应对大部分选择题这些关键字均来自历年真题高频考点2数据流风格批处理与管道-过滤器 36:00共同特征: 都用于传统编译器场景表现为一个接一个的处理流程前阶段输出作为后阶段输入区分要点:批处理以整体为单位处理管道-过滤器前一个输出必定是后一个输入典型应用: 编译器开发词法分析→语法分析→语义分析→代码生成的链式处理3调用/返回风格主程序/子程序与面向对象 36:29主程序/子程序: 显示的直接调用关系如函数显式调用面向对象: 通过对象调用封装的方法和属性考试出现频率较低层次结构: 每层最多影响上下两层具有明确的调用关系4独立构件风格 36:58事件驱动(隐式调用):特征通过事件触发动作而非直接调用实例IDE语法错误实时提示如VS Code的错误标记、语法高亮显示进程通信: 进程间独立的消息传递机制支持同步/异步方式5虚拟机风格解释器与规则系统 38:15共同特点: 支持自定义流程和灵活规则定义规则系统:适用场景DSS决策支持系统、人工智能专家系统实例机器人规则集、规则解释器解释器:组成解释引擎、存储区、数据结构业务场景自定义业务流程解释6仓库风格 38:44核心特征: 以数据为中心的数据共享风格黑板系统:适用语音识别、知识推理等复杂问题组成黑板、知识源、控制系统数据库: 现代编译器的集成开发环境典型应用超文本: 网状链接结构多用于IDE和互联网7闭环风格过程控制 39:14工作原理: 循环反馈调节发出控制命令→接收反馈→调整参数典型应用: 汽车定速巡航、空调温度自动调节系统8C2风格 39:25核心结构: 通过连接件绑定的并行构件网络运作特点: 构件分顶部和底部按规则运作且构件间禁止直接交互4. 考试真题 39:561例题:架构风格定义题目解析正确答案: 第一空A语义特性第二空B设计考点提示: 架构风格定义强调组织方式和惯用模式这两个词常作为填空考点2例题:架构风格与系统性能 40:44题目解析层次化风格: 层次越多性能越差正确隐式调用: 可通过并发调用提高性能正确面向对象: 添加对象管理层会降低性能错误选项解释器: 预编译部分代码可提升性能正确3例题:VIP管理系统风格选择 42:16题目解析关键需求: 不定期更新审核标准和折扣规则排除法:管道-过滤器无流水线特征分层无层次需求过程控制无反馈调节正确选择: A规则系统因需动态修改业务规则4例题:C2风格识别 43:20题目解析迷惑选项: 规则系统虽提及规则但非核心特征核心特征: 连接件绑定的并行构件网络正确答案: AC2风格5例题:编译器开发风格 44:37题目解析典型特征: 阶段间数据传递前输出作为后输入排除选项:规则系统无规则自定义数据仓储非中心化数据解释器无流程解释需求正确答案: A管道-过滤器6例题:业务组合需求 45:14题目解析需求本质: 业务功能灵活组合风格对比:规则系统侧重智能决策解释器支持自定义流程组合正确答案: D解释器二、知识小结知识点核心内容考试重点/易混淆点难度系数软件架构风格概述架构风格是描述特定应用领域中系统组织方式的惯用模式反映众多系统共有的结构和语义特性区分“架构”与“体系结构”为同一概念英文均为architecture⭐⭐五大基础架构风格1. 数据流风格批处理/管道过滤器; 2. 调用返回风格主程序子程序/面向对象/层次结构; 3. 独立构建风格进程通信/事件驱动; 4. 虚拟机风格解释器/基于规则; 5. 仓库风格数据库/黑板/超文本数据流风格强调顺序执行调用返回风格含显式调用独立构建风格为隐式调用如事件触发⭐⭐⭐⭐数据流风格- 批处理整体执行前一步完成才能开始下一步; - 管道过滤器流式处理如边缓存边播放前一个输出为后一个输入批处理 vs 管道过滤器的核心区别是否以整体为单位执行⭐⭐⭐调用返回风格- 主程序子程序函数显式调用; - 面向对象对象间方法调用; - 层次结构分层调用如OSI七层模型下层为上层服务层次结构的缺点效率降低跨层调用开销、分层难度高⭐⭐⭐独立构建风格- 事件驱动通过事件隐式触发如语法错误实时提示; - 进程通信独立进程通过消息传递交互事件驱动的关键字隐式调用、异步触发⭐⭐⭐⭐虚拟机风格- 解释器自定义执行流程如JVM; - 基于规则适用于AI/决策系统如动态更新VIP审核规则解释器效率低基于规则系统需关联人工智能/DSS场景⭐⭐⭐⭐仓库风格- 数据库系统以数据为中心; - 黑板系统知识源黑板控制如语音识别; - 超文本系统网状结构如HTTP黑板系统特点知识推理、问题空间大⭐⭐⭐其他风格- 闭环控制反馈调节如空调温控; - C2风格构件通过连接件绑定顶部/底部规则C2风格关键词构件不能直接连接、并行构建网络⭐⭐真题高频考点- 数据流风格编译器阶段处理; - 虚拟机风格业务灵活组合; - 仓库风格IDE开发环境易错点规则系统 vs 解释器前者需AI/决策场景⭐⭐⭐⭐⭐

相关文章:

13.2软件架构风格

一、软件架构风格 00:10 1. 软件体系结构风格概述 01:101)软件体系结构风格定义 01:16 领域特定模式:描述特定应用领域中系统组织方式的惯用模式,如穿衣风格(日系/韩系/中式)或建…...

Node.js后端服务开发:调用cv_resnet101人脸检测API的实战教程

Node.js后端服务开发:调用cv_resnet101人脸检测API的实战教程 你是不是也遇到过这样的场景?手头有一个功能强大的AI模型,比如一个能精准识别人脸的cv_resnet101模型,它部署在某个GPU平台上,接口已经准备好了。但你的应…...

文字情绪一目了然:像素心智情绪解码器快速上手指南

文字情绪一目了然:像素心智情绪解码器快速上手指南 1. 什么是像素心智情绪解码器 像素心智情绪解码器(Pixel Mind Decoder)是一款基于M2LOrder核心引擎构建的高端情绪识别工具。它将复杂的情绪识别过程转化为直观的视觉化体验,采…...

Omni-Vision Sanctuary 长短期记忆网络应用:时间序列预测与文本生成

Omni-Vision Sanctuary 长短期记忆网络应用:时间序列预测与文本生成 1. 序列数据处理的挑战与机遇 在当今数据驱动的世界中,序列数据无处不在——从股票市场的价格波动到人类语言的文字排列,再到视频中的连续帧。这些数据都有一个共同特点&…...

OpenClaw多模态探索:Qwen3-14b_int4_awq解析截图内容

OpenClaw多模态探索:Qwen3-14b_int4_awq解析截图内容 1. 为什么需要截图解析能力 上周我在整理项目文档时遇到一个典型场景:需要将十几个软件界面的操作步骤整理成图文教程。传统做法是手动截图后,用OCR识别文字再人工编写说明——这个过程…...

Meta 发布 Muse Spark,全面超越一众模型,当年的开源王者正式回归

Meta 悄悄做了一件大事。他们发布了一个名叫 Muse Spark 的新模型——这不是 Llama 系列的升级,而是 Meta 全新模型家族 Muse 的第一个成员,背后是他们专门成立的新部门:Meta Superintelligence Labs(MSL)。 光看这个…...

Pixel Aurora Engine 集成SpringBoot:打造企业级创意内容API服务

Pixel Aurora Engine 集成SpringBoot:打造企业级创意内容API服务 1. 企业创意内容生产的痛点与机遇 在数字化营销时代,企业每天需要生产大量创意内容来满足不同渠道、不同受众的需求。从社交媒体海报到电商主图,从广告素材到活动页面&#…...

零基础玩转AI字幕:清音刻墨Qwen3详细使用步骤解析

零基础玩转AI字幕:清音刻墨Qwen3详细使用步骤解析 1. 前言:当字幕对齐不再需要“听写员” 你有没有过这样的经历?花几个小时录好一段视频,却要花更多时间,戴着耳机反复听、暂停、打字、拖动时间轴,只为给…...

Pixel Script Temple 快速上手:5步完成Visual Studio Code集成与调用

Pixel Script Temple 快速上手:5步完成Visual Studio Code集成与调用 1. 引言 作为一名开发者,你是否经常遇到这样的场景:面对复杂的业务逻辑需要快速生成代码框架,或者需要为已有代码添加详细注释?Pixel Script Tem…...

OpenClaw对话式开发:Qwen3-32B镜像生成Python脚本实例

OpenClaw对话式开发:Qwen3-32B镜像生成Python脚本实例 1. 为什么选择对话式开发 作为一名长期与Python打交道的开发者,我一直在寻找更高效的编码方式。传统IDE虽然功能强大,但面对重复性脚本编写时,仍然需要大量手动操作。直到尝…...

电脑死机解决方法

长按开机键,如20秒,重启。...

5分钟体验MogFace:高精度人脸检测工具,支持遮挡和侧脸识别

5分钟体验MogFace:高精度人脸检测工具,支持遮挡和侧脸识别 1. 引言:为什么选择MogFace? 想象一下这样的场景:你正在整理家庭相册,发现一张20年前的老照片,照片里的人们或侧身、或戴着帽子、或…...

【SAP CO】3.产品成本-5.成本核算变式配置

目录 一、成本核算变式组件 二、BOM核算优先级设定 三、Routine核算优先级设定 一、成本核算变式组件 控制-->产品成本控制-->产品成本计划编制-->带数量结构的成本估算-->定义成本核算变式 控制-->产品成本控制-->产品成本计划编制-->带数量结构的成…...

G-Helper技术深度评测:轻量化华硕笔记本控制工具的革新之路

G-Helper技术深度评测:轻量化华硕笔记本控制工具的革新之路 【免费下载链接】g-helper Lightweight, open-source control tool for ASUS laptops and ROG Ally. Manage performance modes, fans, GPU, battery, and RGB lighting across Zephyrus, Flow, TUF, Stri…...

IAR 9.1 版本创建 STM32F1 工程全解析(V3.6.0标准外设库)

一:前言 之前一直用的KEIL MDK 编译ST工程,最近开始学习用IAR搭建工程:先是不知道官网下载的V3.6.0标准外设库,里面的文件该怎么挑、怎么放;再是IAR 9.1版本和网上低版本教程不兼容,一编译就报Pe147错误&a…...

在超大数据集下 DuckDB 与 MySQL 查询速度对比姿

一、什么是urllib3? urllib3 是一个用于处理 HTTP 请求和连接池的强大、用户友好的 Python 库。 它可以帮助你: 发送各种 HTTP 请求(GET, POST, PUT, DELETE等)。 管理连接池,提高网络请求效率。 处理重试和重定向。 支…...

GLM-4.1V-9B-Base与Proteus联调:可视化电路仿真结果分析

GLM-4.1V-9B-Base与Proteus联调:可视化电路仿真结果分析 1. 硬件调试的新思路 在电子工程领域,电路调试一直是个耗时费力的过程。工程师们需要盯着示波器上的波形,手动比对预期与实际结果,这个过程不仅容易出错,还特…...

【零基础入门】本地LLM聊天机器人保姆级教程|Windows+Mac通用

本文适合:完全不懂Python、AI零基础小白,无需显卡、无需翻墙、无需付费,跟着步骤复制粘贴即可拥有自己的本地AI助手。 🍓 前言 最近本地大模型特别火,很多同学想入门,却被环境配置、模型部署、代码逻辑劝退…...

Wan2.2-I2V-A14B Java面试热点:如何设计高并发视频生成任务系统?

Java面试热点:如何设计高并发视频生成任务系统? 1. 场景与挑战 视频生成服务正成为内容创作领域的热门需求,而高并发场景下的系统设计是Java后端开发面试中的常见考察点。假设我们需要基于Wan2.2-I2V-A14B模型构建一个视频生成平台&#xf…...

mremap:用户态调用mremap后VMA的pgoff以及page会发生发生

结论 先说结论: 1、执行 mremap 后,如果新的addr之前被映射过,之前映射过的page会被释放掉,新的addr先unmap掉。重新把旧addr的page重新映射到新的addr 2、VMA 确实会发生变化:如果原来的一个连续 VMA地址 会被拆分…...

Universal Control Remapper使用难题攻克:3个核心问题的系统解决方案

Universal Control Remapper使用难题攻克:3个核心问题的系统解决方案 【免费下载链接】UCR Universal Control Remapper [ALPHA] 项目地址: https://gitcode.com/gh_mirrors/ucr/UCR 作为一款开源的控制器映射工具,Universal Control Remapper&am…...

Anthropic发布史上最强模型:Claude Mythos Preview,但遭禁用

“太危险不能发布”这句话,AI 行业七年前就说过一次。是2019 年 2 月,OpenAI 发了一个叫 GPT-2 的语言模型。当时OpenAI给出的理由是担心被用来大规模生成虚假信息,所以只放出了一个缩水版。七年过去,Anthropic把这句话又说了一遍…...

【工业PHP物联网网关开发实战指南】:从零搭建高并发、低延迟数据中继系统(含Modbus/TCP+MQTT双协议栈源码)

第一章:工业PHP物联网数据网关开发概览工业物联网(IIoT)场景中,PHP 作为成熟稳定的后端语言,正以轻量、可扩展、易集成的特性,在边缘侧数据网关开发中焕发新生。本章聚焦于构建一个面向工业现场的 PHP 数据…...

内容审核自动化:Qwen3Guard-Gen-WEB部署与集成实战教程

内容审核自动化:Qwen3Guard-Gen-WEB部署与集成实战教程 1. 认识Qwen3Guard-Gen-WEB Qwen3Guard-Gen-WEB是阿里开源的安全审核模型Qwen3Guard-Gen的即用型封装,它将复杂的AI审核能力转化为开箱即用的Web服务和API接口。不同于传统的二分类审核系统&…...

单调队列优化多重背包 学习笔记 详解蔷

背景 StreamJsonRpc 是微软官方维护的用于 .NET 和 TypeScript 的 JSON-RPC 通信库,以其强大的类型安全、自动代理生成和成熟的异常处理机制著称。在 HagiCode 项目中,为了通过 ACP (Agent Communication Protocol) 与外部 AI 工具(如 iflow …...

Claude Mythos Preview 模型强到不敢公开,是真的吗?

Claude Mythos Preview 模型官方安全与能力报告(Anthropic 2026年4月7日) 本文为Anthropic公司2026年4月7日发布的Claude Mythos Preview模型官方安全与能力报告,也是人类目前最顶级的大模型之一的完整技术与风险说明书。 一、一句话定位 …...

Pixel Language Portal 系统资源管理:应对 C 盘空间不足的智能清理建议

Pixel Language Portal 系统资源管理:应对 C 盘空间不足的智能清理建议 1. 引言:C盘空间告急的日常困扰 "您的C盘空间不足"——这个弹窗可能是很多Windows用户最不愿看到的提示之一。随着使用时间增长,系统盘空间被各种临时文件、…...

Scrapy工作空间搭建与目录结构解析:从初始化到基础配置全流程

Scrapy工作空间搭建与目录结构解析:从初始化到基础配置全流程 在Scrapy爬虫开发中,规范的工作空间搭建是高效开发、便于维护的基础。无论是个人数据采集项目,还是企业级大规模爬虫开发,清晰的项目结构、标准的操作流程&#xff0…...

一文吃透Scrapy:从本质到实战,揭秘商用爬虫的核心框架

一文吃透Scrapy:从本质到实战,揭秘商用爬虫的核心框架 在网络爬虫领域,Scrapy绝对是绕不开的核心工具。无论是个人做数据采集,还是企业级商用爬虫项目,它都是绝大多数开发者的首选。但很多人对Scrapy的认知存在偏差&a…...

Agent智能体开发:基于万象熔炉·丹青幻境构建自主任务执行系统

Agent智能体开发:基于万象熔炉丹青幻境构建自主任务执行系统 最近AI圈子里“智能体”(Agent)这个词特别火,但很多人可能还不太清楚它到底能做什么。简单来说,它不再是那个你问一句、它答一句的聊天机器人,…...