【2610架构】03 软件架构风格大家好,我是轩辕,我们通过一系列内容学习软件架构设计师相关内容,这一篇重点学习软件架构风格相关内容等。1.4. 软件架构风格(★★★★★)重点掌握
软件体系结构风格是描述某一特定应用领域中系统组织方式的惯用模式。体系结构风格定义一个系统家族,即一个体系结构定义一个词汇表和一组约束。词汇表中包含一些构件和连接件类型,而这组约束指出系统是如何将这些构件和连接件组合起来的。其核心目标是软件架构级别的重用,提高系统的可扩展性、可维护性和可理解性。1. 数据流体系结构风格
数据流架构基于数据流动进行计算,不依赖固定的执行顺序,主要包括:♦批处理风格:数据整体传递,每个步骤必须等前一步完成后才能执行。♦管道-过滤器风格:数据流经多个过滤器处理,每个过滤器完成特定任务,数据通过管道传递。图- 批处理体系结构风格示意图图- 管道/过滤器体系结构风格2. 调用/返回体系结构风格
基于调用与返回机制,通过分解复杂系统提高可维护性,主要包括:♦主程序/子程序风格:采用层次调用结构,主程序调用子程序完成任务。♦面向对象风格:基于封装、继承、多态,构件为对象,交互通过方法调用。♦层次型风格:系统分为多个层次,每层仅与相邻层交互,便于扩展和维护。♦客户端/服务器(C/S)风格:客户端请求服务,服务器提供资源和计算,支持两层(胖客户端)和三层(瘦客户端,增加应用服务器)。图- 面向对象体系结构风格 图 - 层次型体系结构风格图- 三层 C/S 体系结构风格3. 以数据为中心的体系结构风格
以中央数据存储(仓库)为核心,仓库与独立构件之间的交互。黑板系统是一种问题求解模型,是组织推理步骤、控制状态数据和问题求解之领域知识的概念框架。适用于解决复杂的非结构化问题,多个独立知识模块在黑板上共享信息进行求解。图- 仓库体系结构风格 图 - 黑板体系结构风格4. 虚拟机体系结构风格
通过解释引擎解析和运行代码,适用于跨平台和动态执行需求,如专家系统。通过规则集、规则解释器、规则/数据选择器及工作内存执行逻辑推理。图- 解释器体系结构风格图- 规则系统体系结构风格5. 独立构件体系结构风格
构件是独立的过程,连接件是消息传递。这种风格的特点是构件通常是命名过程,消息传递的方式可以是点到点、异步或同步方式及远程过程调用(RPC)等。以事件驱动方式进行交互,事件触发后系统自动调用相关模块。适用于用户界面、数据库一致性约束、编程环境集成等场景。事件的触发者不知道哪些构件会受到影响,也无法确定具体的处理顺序。由于隐式调用的不可预测性,许多系统同时结合显式调用以增强可控性。编辑器与调试器:例如Debugger 触发断点事件,自动通知编辑器滚动到断点位置、变量监视器刷新变量值等,而 Debugger 不关心 具体哪些过程会被调用。基于事件的隐式调用架构风格广泛应用于解耦、扩展性强的系统,如GUI 事件驱动、微服务架构中的事件总线等。图- 事件系统体系结构风格以上分享的内容希望对大家有所帮助,感谢大家长期以来的支持,有任何问题或想了解更多关于架构、系分、高项、软设的内容,直接私信我。我们快来一起进步吧!
软考学习,请关注公众号,进群加微信
私信:架构、系分、高项、软设