← 返回导航
架构风格
软件架构风格:五大类十四风格、层次/事件驱动、SOA微服务云原生
选择题年年考 / 案例必考(选型论证)/ 论文高频主题
场景题答题套路:题目特征 -> 匹配风格 -> 说优点 -> 讲适配理由
五大类十四风格总表
| 类别 | 风格 | 一句话特征 | 典型应用 |
|---|
| 数据流 | 批处理 | 整体输入、顺序处理、整体输出 | 银行日终结算、ETL |
| 数据流 | 管道-过滤器 | 流式增量处理,前级输出=后级输入 | 编译器、Unix管道、流计算 |
| 调用/返回 | 主程序-子程序 | 单线程自顶向下调用 | 传统结构化程序 |
| 调用/返回 | 面向对象 | 封装+消息传递 | OO系统 |
| 调用/返回 | 层次型 | 每层只依赖下一层,单向服务 | OSI/TCP-IP、J2EE分层 |
| 独立构件 | 进程通信 | 独立进程显式消息传递 | 分布式系统 |
| 独立构件 | 事件驱动(隐式调用) | 发布-订阅、回调,触发即响应 | GUI、观察者模式、MQ |
| 虚拟机 | 解释器 | 解释执行自定义语言/规则 | Python解释器、规则引擎 |
| 虚拟机 | 规则系统 | 知识库+推理机 | 专家系统 |
| 仓库 | 数据库 | 中心数据(被动)+客户端主动访问 | MIS/ERP系统 |
| 仓库 | 黑板 | 中心数据(主动)+知识源竞相更新 | 语音识别、信号处理 |
层次型(案例最爱)
- 优点:复用性好、可移植、关注点分离、团队并行开发
- 缺点:多层中转性能损耗、跨层调用破坏分层、层次边界模糊
- 变体:三层架构(表示-业务-数据)、B/S、MVC/MVVM
- MVC:Model数据 / View呈现 / Controller输入控制——表示与逻辑分离
事件驱动(高频)
- 优点:松耦合、易扩展新订阅者、响应性好
- 缺点:控制流不直观、调试困难、事件风暴风险
现代架构演进(论文高频)
- SOA:服务注册-发现-绑定,ESB企业服务总线,粗粒度服务,WS*/SOAP
- 微服务 vs SOA:微服务=去中心化治理、独立部署、轻量通信(REST/消息)、按业务能力划分、康威定律
- 云原生(2022版新增重点):容器+K8s、DevOps+CI/CD、服务网格、Serverless、不可变基础设施、声明式API
- C/S vs B/S:C/S性能强/需安装/维护难;B/S零安装/易维护/弱交互
速记口诀
数据流:批整管流;调用返:主对层;独立件:进程事;虚拟机:解释规;仓库系:库黑超
案例"选风格"题三段论:①题目系统特征(实时?流式?交互?)②匹配XX风格+核心机制 ③好处两点+风险一点