VibeArch Logo
VibeArch

架构设计模式

构建健壮系统的常见架构模式和框架

结构型模式

分层架构模式

将系统组织成具有特定职责的层,每一层为其上层提供服务,并使用其下层的服务。

适用场景 / Use Cases
企业应用、Web应用、传统业务系统
优势 / Advantages
清晰的关注点分离、易于理解和维护、支持层的独立开发
注意事项 / Considerations
可能导致性能开销、随时间可能变得僵化

客户端-服务器模式

将系统分为两个主要组件:请求服务的客户端和提供服务的服务器。

适用场景 / Use Cases
Web应用、电子邮件系统、文件共享系统
优势 / Advantages
集中控制、易于维护和更新服务器、支持多个客户端
注意事项 / Considerations
服务器可能成为瓶颈、网络依赖

主从模式

主组件在相同的从组件之间分配工作,并从从组件返回的结果中计算最终结果。

适用场景 / Use Cases
数据库复制、并行处理、负载均衡
优势 / Advantages
通过并行化提高性能、容错能力
注意事项 / Considerations
同步复杂性、潜在的数据不一致

管道-过滤器模式

通过一系列处理组件(过滤器)处理数据,这些组件通过在它们之间传递数据的管道连接。

适用场景 / Use Cases
数据处理管道、编译器、Unix shell命令
优势 / Advantages
灵活性、过滤器的可重用性、易于添加新的处理步骤
注意事项 / Considerations
对于交互式系统可能效率低下、错误处理复杂

代理模式

构建具有解耦组件的分布式系统,这些组件通过协调通信的代理组件进行交互。

适用场景 / Use Cases
面向消息的中间件、分布式系统、微服务
优势 / Advantages
松耦合、位置透明、动态绑定
注意事项 / Considerations
代理可能成为单点故障、增加复杂性

点对点模式

各个组件(对等体)既可以充当客户端也可以充当服务器,彼此直接共享资源。

适用场景 / Use Cases
文件共享系统、区块链、分布式计算
优势 / Advantages
没有单点故障、可扩展性、资源共享
注意事项 / Considerations
实现复杂、安全挑战、难以维护

行为型模式

MVC模式

将应用程序分为三个相互连接的组件:模型(数据)、视图(展示)和控制器(业务逻辑)。

适用场景 / Use Cases
Web应用、桌面应用、移动应用
优势 / Advantages
关注点分离、并行开发、同一模型的多个视图
注意事项 / Considerations
对于简单应用可能过于复杂、组件之间紧密耦合

CQRS模式

命令查询职责分离将读取和写入操作分离到不同的模型中。

适用场景 / Use Cases
高性能系统、事件溯源系统、复杂领域
优势 / Advantages
优化的读写操作、可扩展性、灵活性
注意事项 / Considerations
增加复杂性、最终一致性挑战

发布-订阅模式

发布者在不知道订阅者的情况下向通道发送消息,订阅者从他们感兴趣的通道接收消息。

适用场景 / Use Cases
事件通知系统、消息队列、实时更新
优势 / Advantages
松耦合、可扩展性、动态订阅
注意事项 / Considerations
消息传递保证、潜在的消息丢失

事件驱动模式

系统行为由事件决定,组件在事件发生时做出反应。

适用场景 / Use Cases
实时系统、物联网应用、响应式系统
优势 / Advantages
松耦合、可扩展性、响应性
注意事项 / Considerations
调试复杂性、最终一致性

事件总线模式

一个中央总线,从发布者接收事件并根据事件类型将它们传递给订阅者。

适用场景 / Use Cases
微服务通信、插件系统、解耦组件
优势 / Advantages
解耦、灵活性、易于添加新组件
注意事项 / Considerations
单点故障、性能瓶颈

模块化模式

微内核模式

一个最小的核心系统,扩展功能由插件模块提供。

适用场景 / Use Cases
插件系统、可扩展应用、操作系统
优势 / Advantages
灵活性、易于扩展、功能隔离
注意事项 / Considerations
性能开销、插件管理复杂性

单体架构模式

一个单层应用程序,其中所有组件都是相互连接和相互依赖的。

适用场景 / Use Cases
中小型应用、MVP、简单业务逻辑
优势 / Advantages
开发和部署简单、易于测试、性能良好
注意事项 / Considerations
难以扩展、紧密耦合、灵活性有限

SOA与微服务架构

面向服务架构(SOA)和微服务都将应用程序构建为松散耦合的服务集合。

适用场景 / Use Cases
大规模企业系统、云原生应用、分布式系统
优势 / Advantages
可扩展性、灵活性、独立部署、技术多样性
注意事项 / Considerations
增加复杂性、分布式系统挑战、运营开销

架构可视化与框架

C4模型

一组用于在不同级别可视化软件架构的分层图表:上下文(Context)、容器(Containers)、组件(Components)和代码(Code)。

适用场景 / Use Cases
架构文档、团队沟通、利益相关者演示
优势 / Advantages
清晰的层次结构、易于理解、支持不同受众
注意事项 / Considerations
需要纪律来维护、可能过时

TOGAF企业架构框架

一个企业架构框架,提供设计、规划、实施和治理的综合方法。

适用场景 / Use Cases
企业架构、大型组织、复杂IT环境
优势 / Advantages
全面的方法论、行业标准、最佳实践
注意事项 / Considerations
可能过于繁重、需要大量投资、学习曲线
VibeArch Logo
VibeArch

致力于探索和推进氛围架构原则的社区。

资源

© 2025 VibeArch Community. All rights reserved.