架构模式
架构模式设计与实践
代理模式:远程、虚拟与保护代理
代理模式:远程、虚拟与保护代理 代理模式概述 代理模式为其他对象提供一种代理以控制对这个对象的访问。代理模式有多种变体:远程代理为远程对象提供本地代表,虚拟代理延迟对象的创建和加载,保护代理控制对象的访问权限。 java // 服务接口 public interface UserService {...
状态模式:有限状态机与工作流引擎
状态模式:有限状态机与工作流引擎 状态模式核心思想 状态模式允许对象在内部状态改变时改变其行为,对象看起来好像修改了其类。状态模式将状态相关的行为封装到独立的状态类中,消除了大量的条件分支语句。在架构中,状态模式是工作流引擎和有限状态机(FSM)的基础。 java // 状态接口 public in...
命令模式:操作队列与撤销重做
命令模式:操作队列与撤销重做 命令模式核心原理 命令模式将请求封装为对象,从而支持参数化、队列化、日志化和可撤销操作。每个命令对象包含执行动作和撤销动作,实现了请求的发送者和接收者解耦。在架构中,命令模式是实现CQRS、事件溯源和工作流引擎的基础。 java // 命令接口 public inter...
观察者模式:事件通知与响应式架构
观察者模式:事件通知与响应式架构 观察者模式核心原理 观察者模式定义了对象间的一对多依赖关系,当一个对象状态改变时,所有依赖它的对象都会收到通知并自动更新。这是事件驱动架构的基础模式,实现了发布者和订阅者的松耦合。 java // 事件定义 public abstract class DomainE...
策略模式:运行时算法切换与可扩展设计
策略模式:运行时算法切换与可扩展设计 策略模式核心思想 策略模式定义一系列算法,将每个算法封装起来,使它们可以互相替换。策略模式让算法的变化独立于使用算法的客户端,是实现开闭原则(OCP)的经典方式。在架构中,策略模式广泛用于支付方式、路由规则、缓存策略、压缩算法等场景。 java // 策略接口...
适配器模式:协议转换与遗留集成
适配器模式:协议转换与遗留集成 适配器模式概述 适配器模式将一个类的接口转换成客户端期望的另一个接口,使原本接口不兼容的类可以一起工作。在架构设计中,适配器模式是系统集成的核心手段,解决不同系统间的协议差异、数据格式差异和接口差异。 java // 目标接口 public interface Pay...
Ambassador模式:边车代理网络与安全策略
Ambassador模式:边车代理网络与安全策略 Ambassador模式核心思想 Ambassador模式是Sidecar模式的一种特化,专注于为客户端提供网络代理功能。Ambassador代理处理连接池管理、重试、熔断、TLS终止、协议转换等网络层面的横切关注点,使客户端代码保持简洁。 ┌───...
Sidecar模式:Envoy代理与日志收集
Sidecar模式:Envoy代理与日志收集 Sidecar模式概念 Sidecar模式是将辅助功能部署为与主应用并行运行的进程,共享网络和存储。Sidecar处理日志、监控、安全、网络代理等横切关注点,使主应用专注于业务逻辑。在Kubernetes中,Sidecar通常以Init Containe...
Saga实战:Seata与Temporal工作流
Saga实战:Seata与Temporal工作流 Saga模式核心原理 Saga模式将长事务拆分为一系列本地事务,每个事务都有对应的补偿操作。当某个步骤失败时,按逆序执行已完成步骤的补偿操作。Saga有两种实现方式:编排式(Choreography)和协同式(Orchestration)。 正向流程...
GoF设计模式在架构中的应用
GoF设计模式在架构中的应用 设计模式与架构的关系 GoF(Gang of Four)的23种设计模式是软件工程的基石,它们为架构设计提供了经过验证的解决方案模板。在架构层面,设计模式不仅是代码层面的技巧,更是系统级设计决策的基础。 java // 工厂模式在架构中的应用 - 抽象工厂创建整个产品族...