设计模式七大原则以及23种经典设计模式的分类

本文介绍了设计模式的七大核心原则,包括单一职责、依赖倒置、里氏替换等,并详细阐述了23种经典设计模式,如单例、工厂、适配器、组合、策略等,帮助开发者理解和应用这些模式,提升软件设计能力。
摘要由CSDN通过智能技术生成

七大原则

  • 单一职责:导致一个类改变的原因只有一个,即它的职责只有一个
  • 依赖倒置:高层模块(稳定)不应该依赖底层模块(变化),它们都应该依赖接口(抽象);针对抽象编程,不要针对细节编程,即抽象不应该依赖实现细节,实现细节应该依赖抽象
  • 里氏替换:任何出现基类的地方都可以由子类替换,否则它们就不应该是继承关系
  • 接口隔离:将稳定不变的部分和变化的部分隔离开,使得可以保持稳定不变不受影响的情况下另一边随意变化适应需求;接口要小而完备
  • 迪米特法则:高内聚,低耦合,一个类对其它类引用和知道的越少越好
  • 开闭原则:对扩展开放,对修改封闭,即应对变化只能通过扩展来实现,不能通过修改
  • 合成复用:组合方式优先于继承方式

分类

创建型(5)

  • 单例模式:只生产一个对象
    在这里插入图片描述
  • 工厂模式:生产单一对象
    在这里插入图片描述
  • 抽象工厂模式:生产相互依赖的对象(生产一组对象,对象彼此依赖)
    在这里插入图片描述
  • 原型模式:复制的方式生产对象
    在这里插入图片描述
  • 建造者模式:生产一个拼起来的对象,生产流程稳定但是生产每个部件的材料可能不同,类似于模板模式。(一个生产模板,一个是业务模板)
    在这里插入图片描述

结构型(7)

  • 适配器模式:使得新旧可以兼容,复用旧的版本但新环境接口不一致的情况
    在这里插入图片描述
  • 桥接器模式:将平台和业务相分离,桥接在一起组合。同一事物不同分类
    在这里插入图片描述
  • 装饰着模式:为子类动态扩展,且扩展可复用。每一个子类扩展地组合形式可能是不一样地且可能是动态地。最主要的特点,子类分为两大类=主体子类+扩展子类,扩展子类中组合了父类
    在这里插入图片描述
  • 组合模式:树形结构表示对象关系,将一对多关系表示一对一,一视同仁的处理所有对象
    在这里插入图片描述
  • 外观模式:使得子系统与外部解耦,提供一个高层结构(稳定的使用接口)提高子系统的复用性
    在这里插入图片描述
  • 享元模式:共享对象,有就直接返回,没有就创建返回并放入池中
    在这里插入图片描述
  • 代理模式:增加间接层,扩展业务
    在这里插入图片描述

行为型(11)

  • 访问者模式:子类稳定但是子类的操作不稳定
    在这里插入图片描述
  • 观察者模式:消息通知,类似于订阅-通知的行为,订阅行为由观察者自己决定,主体不在乎谁订阅我,只负责通知订阅者。自动地给依赖我的人传递消息。
    在这里插入图片描述
  • 中介者模式:封装多个对象的复杂关系,解耦系统内复杂关系
    在这里插入图片描述
  • 解释器模式:业务(处理的事情千变万化)不断变化但是结构(规则一定)不断重复
  • 迭代器模式:透明地访问集合对象
    在这里插入图片描述
  • 模板模式:整体流程是固定的,但是具体的步骤实现可能会变化
    在这里插入图片描述
  • 策略模式:策略有很多种,但是只能选择一个策略,sp.出现switch和一连串的if-else时
    在这里插入图片描述
  • 职责链模式:一个请求可能被多个对象处理,但实际只是其中一个来处理
    在这里插入图片描述
  • 状态模式:状态变化导致行为变化
    在这里插入图片描述
  • 命令模式:将请求变成对象
    在这里插入图片描述
  • 备忘录模式:恢复对象之前的状态
    在这里插入图片描述

(红色表示稳定的部分,蓝色表示变化的部分)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值