软考系统分析师·每日学习卡 | [日期:2025-07-02] | [今日主题:系统设计-行为型设计模式(一)]
一、今日学了啥?
- 职责链模式(Chain of Responsbility):通过给多个对象处理请求的机会,减少请求的发送者与接受者之间的耦合。将接收对象链接起来,在链中传递请求,直到有一个对象处理它为止。常见如OA.
- 命令模式(Command):将请求封装成对象,从而允许参数化其他对象,对请求排队或记录请求日志,以及支持可撤销的操作。典型场景如顾客到饭店点餐。
- 解释器模式(Interpreter):给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。如'''X = 1 + 1''',又如 Java 的虚拟机。
- 迭代器模式(Iterator):提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露该对象的内部表示。
- 中介者模式(Mediator):又叫调停者模式,通过一个中介对象来封装一系列的对象交互。中介者使各对象不需要显示地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。
- 备忘录模式(Memento):在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。
二、重点/要记住的!
-
🔺 责链模式:传递请求、职责链接
-
🔺 命令模式:日志记录、可撤销
- 抽象命令(Command):命令是抽象接口,定义执行操作的统一方法。具体命令类会实现该接口,并提供执行相应操作的具体逻辑。
- 具体命令(Concreate Command):具体命令类实现抽象命令,拥有接受者对象,并调用接受者的功能来完成命令要执行的操作。
- 接收者(Receiver):执行实际命令的类,命令对象会调用接受者的方法来执行请求。
- 调用者(Invoker):持有命令对象,通常是多个,并通过访问命令对象来执行相关请求,不直接访问接收者。
-
🔺 解释器模式:解释器、虚拟机
- AbstractExpression:抽象表达式
- TerminalExpression:终结符表达式(不可再分割的)
- NonTerminalExpression:非终结符表达式,连接终结符和非终结符
- Context:环境类
-
🔺 迭代器模式:顺序访问、不暴露内部
- Iterator:抽象迭代器
- ConcreteIterator:具体迭代器
- Aggregate:抽象聚合类
- ConcreteAggregate:具体聚合类
-
🔺 代理者模式:不直接引用
-
🔺 备忘录模式:保存、恢复
- Originator:原发器、原始对象
- Memento:备忘录,保存原发器
- Caretaker:负责人、维护备忘录
三、今天的小收获/卡住的地方
暂不涉及
四、明天学啥?
明天补齐今天学习内容的类图,以及学完剩下的几种设计模式。
像实干家一样思考问题,像思想家一样付诸行动。
愿你我共同进步!

浙公网安备 33010602011771号