美文网首页
23种设计模式总结

23种设计模式总结

作者: 文景大大 | 来源:发表于2022-07-06 11:27 被阅读0次

设计模式算是软件架构的一种方式,我们需要掌握每种设计模式的应用场景、特征、优缺点,以及相互之间可能存在的关联关系,如此才能合理选择和应用适合当下业务的设计模式。

合理地使用设计模式可以使我们软件的架构更加合理,更加遵循七大设计原则,更加利于代码的扩展和系统的优化,更加地利于理解。

通常情况下,某种设计模式也不是单独使用的,更多地会和其它相关联的模式组合使用。

一、设计模式的分类

1.1 设计原则

在前面的文章中有详细介绍过七大设计原则,如下图所示:

设计原则

这七大设计原则是所有设计模式都努力遵循的原则,是我们在设计软件结构的时候应该优先考虑的问题。

名称 一句话概括 作用
开闭原则 对扩展开放,对修改关闭 提升可扩展性
依赖倒置 面向接口,依赖接口 减少耦合,提升可扩展性
单一职责 单一职责 减少耦合,提升可阅读性
接口隔离 不使用不需要的功能 代码清爽瘦身,可扩展性强
迪米特法则 最少知识,知道的越少越好 减少耦合,提升可阅读性
里氏替换 父类替换为子类而不改变行为 校验继承关系的健康性,不至于让子类乱改父类的内容
合成复用 多用组合和聚合,少用继承 减少耦合,提升可扩展性

1.1 创建型

创建型模式总共就只有四种,其中工厂模式和单例模式的实现方式比较多样,需要根据自己业务的特点进行选用。

创建型模式
名称 一句话概括 作用
工厂模式 产品标准化、高效化生产 封装创建对象的细节
单例模式 有且仅有一个类实例 保证类实例的唯一性
建造者模式 自由选择哪些配置,链式添加属性 开放个性化地配置对象的属性
原型模式 高效快速复制对象,基于内存clone对象 高效快速复制对象
创建型模式使用频率及复杂度

1.2 结构型

结构型模式总共有7种,如下所示:

结构型模式
名称 一句话概括 作用
适配器模式 万能充电头 针对已有代码做兼容转换
装饰器模式 套娃装饰 灵活扩展
代理模式 专业的事情交给专业的人做 解耦用户和各式各样的服务
门面模式 任意门通向任何地方 统一服务调用的入口
组合模式 树状结构统一行为 统一整体和个体的行为
享元模式 对象池复用 共享池资源,节省内存
桥接模式 多维度独立变化 减少多维度变化带来的复杂性
结构型模式使用频率及复杂度

1.3 行为型

行为型模式比较多,总共有12种,如下所示:

行为型模式
名称 一句话概括 作用
策略模式 选择权交给用户决定 减少分支判断
状态模式 状态驱动行为,行为改变状态,状态机 减少分支判断
观察者模式 被观察者回调通知所有观察者 减少主动轮询
责任链模式 让事情按照流水线一样流动处理 单一职责,每个类只要负责自己的事情
解释器模式 拥有文本符号的解释权 实现特定语法的解析
模板方法模式 父类只定义做事的模板步骤,怎么做需要子类自己摸索 逻辑复用,行为标准固定
迭代器模式 可以迭代任何类型的集合 统一对集合的访问方式
中介者模式 笛卡尔积优化为中心结构 解耦各个用户
命令模式 原子命令组合成命令 解耦请求和处理
访问者模式 管家代理访问者一一拜访所有主人 解耦数据的操作和结构
委派模式 层层外包,不断拆分任务 解耦顶层和底层
备忘录模式 回到过去的后悔药 保存过去的状态方便回滚
行为型模式使用频率及复杂度

相关文章

网友评论

      本文标题:23种设计模式总结

      本文链接:https://www.haomeiwen.com/subject/fxqybrtx.html