设计模式
软件设计模式
#tech / dev / pattern
#type / concept
#status / growing
设计模式
设计模式是一套在软件工程中经过验证的、用于解决特定设计问题的解决方案模板,它们帮助开发者避免重复发明轮子,确保设计的一致性和可维护性,提高代码的可读性和可扩展性。
单例模式
需要确保某个类只有一个实例,并提供一个全局访问点的时候
如配置管理器、全局缓存
简单工厂模式
利用一个工厂作为入口,将多个对象的创建和使用分离,
根据传入的参数来创建并返回不同的对象实例。
传入不同的支付渠道,实现不同的支付方法
策略模式
行为型设计模式,它定义了一系列算法,把每个算法封装起来,让他们可以相互替换。
主要目的是为了解耦多个策略
特点:
- 算法封装
- 动态替换
- 遵循开闭原则
组成:
- 策略接口
- 具体策略
- 上下文类
支付场景需要不同的支付渠道,对应不同的策略,适合策略模式
分数有不同的算法 平均值、最大值。
模板方法模式
行为型设计模式,在抽象类中定义了一个算法(业务逻辑)的骨架,具体步骤放在子类中,达到代码复用和扩展的目的
- 算法骨架
- 复用代码
- 遵循开闭原则
组成:
- 抽象类
- 具体类
- 模板方法
场景:
- 数据处理
- Web 请求
- 组件
代理模式
一种结构型设计模式,在不改变原始对象的前提下
通过引入一个代理对象来控制对原始对象的访问,实现额外的功能。
如控制权限、延迟加载、缓存等
特点:
- 间接访问
- 功能增强
- 解耦性
- 远程代理
- 权限代理
- 智能引用
- 访问控制 对实际对象的访问需要进行权限验证时。
- 性能优化
- 远程访问
- 日志记录
原型模式
创建型设计模式
主要通过复制现有的实例来创建新的对象
避免复杂创建过程,提升创建对象的效率。
- 克隆对象
- 深拷贝与浅拷贝
- 动态扩展性
- 创建对象成本高
- 需要多个相似对象
- 文档编辑器中模板文档的创建
- 游戏开发中怪物或物品的批量生成