设计模式

软件设计模式

#tech / dev / pattern #type / concept #status / growing

设计模式

设计模式是一套在软件工程中经过验证的、用于解决特定设计问题的解决方案模板,它们帮助开发者避免重复发明轮子,确保设计的一致性和可维护性,提高代码的可读性和可扩展性。

单例模式

需要确保某个类只有一个实例,并提供一个全局访问点的时候
如配置管理器、全局缓存

简单工厂模式

利用一个工厂作为入口,将多个对象的创建和使用分离,
根据传入的参数来创建并返回不同的对象实例。

传入不同的支付渠道,实现不同的支付方法

策略模式

行为型设计模式,它定义了一系列算法,把每个算法封装起来,让他们可以相互替换。
主要目的是为了解耦多个策略

特点:

  • 算法封装
  • 动态替换
  • 遵循开闭原则

组成:

  • 策略接口
  • 具体策略
  • 上下文类

支付场景需要不同的支付渠道,对应不同的策略,适合策略模式
分数有不同的算法 平均值、最大值。

模板方法模式

行为型设计模式,在抽象类中定义了一个算法(业务逻辑)的骨架,具体步骤放在子类中,达到代码复用和扩展的目的

  • 算法骨架
  • 复用代码
  • 遵循开闭原则

组成:

  • 抽象类
  • 具体类
  • 模板方法

场景:

  • 数据处理
  • Web 请求
  • 组件

代理模式

一种结构型设计模式,在不改变原始对象的前提下
通过引入一个代理对象来控制对原始对象的访问,实现额外的功能。
如控制权限、延迟加载、缓存等

特点:

  • 间接访问
  • 功能增强
  • 解耦性
  • 远程代理
  • 权限代理
  • 智能引用
  • 访问控制 对实际对象的访问需要进行权限验证时。
  • 性能优化
  • 远程访问
  • 日志记录

原型模式

创建型设计模式
主要通过复制现有的实例来创建新的对象
避免复杂创建过程,提升创建对象的效率。

  • 克隆对象
  • 深拷贝与浅拷贝
  • 动态扩展性
  • 创建对象成本高
  • 需要多个相似对象
  • 文档编辑器中模板文档的创建
  • 游戏开发中怪物或物品的批量生成
创建于 2025/9/29 更新于 2026/5/27