软考系统分析师·每日学习卡 | [日期:2025-07-03] | [今日主题:系统设计-行为型设计模式(二)]

一、今日学了啥?

  • 观察者模式(Observer):定义对象间的一对多的依赖关系,当一个对象状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。典型如MVC架构。
    img

  • 状态模式(State):允许一个对象在其内部状态改变时改变它的行为。
    img

  • 策略模式(Strategy):定义一系列算法,将每个算法封装起来,并使他们可以相互替换,从而让算法可独立于使用它的用户二变化。
    img

  • 模板方法模式(Template Method):定义一个操作中的算法的骨架,而将一些步骤延迟到子类中,使得子类可以不改变算法的结构即可重定义该算法的某些特定步骤。
    img

  • 访问者模式(Visitor):表示一个作用于某对象结构中的各元素的操作,使得在不改变各元素的类的前提下定义作用与这些元素的新操作。


二、重点/要记住的!

  • 🔺 观察者模式:通知、自动更新

    • 一个对象的改变能影响其他对象
    • 发生改变的对象为观察对象,被通知的对象为观察者
    • 一个观察目标可对应多个观察者
    • 又叫发布-订阅模式、模型-视图模式、源-监听器模式或从属者模式
      img
  • 🔺 状态模式:状态变成类

    • 有些对象具有多个状态
    • 这些状态在某些情况下能相互转换
    • 对象在不同的状态下具有不同的行为
      img
  • 🔺 策略模式:算法替换

    • 实现某个目标的途径有多条,根据实际选择合适的途径,定义独立的类来封装不同的途径,每一个类封装一种具体的途径策略
      img
  • 🔺 模板方法模式:框架

    • 软件开发:方法实现需要多个步骤(如请客),固定的步骤(如点单、买单)、有的不固定(如吃东西)存在可变性
    • 基本方法(点单、吃东西、买单)-> 模板方法(请客)
      img
  • 🔺 访问者模式:数据和操作分离

    img


三、今天的小收获/卡住的地方

暂不涉及


四、明天学啥?

明天开始学习软件测试


像实干家一样思考问题,像思想家一样付诸行动。

愿你我共同进步!

posted @ 2025-07-03 22:48  梦想截留时光  阅读(9)  评论(0)    收藏  举报