摘要:
### 概述 状态模式(State Pattern)又称状态对象(Objects for States)。当一个对象的内部状态改变时其行为跟着改变。 **优点**:提高可维护性。 **缺点**:增加了类的数量,实现较复杂,不符合“开闭原则”。 ```java class Context { priv 阅读全文
摘要:
### 概述 观察者模式(Observer Pattern)又称发布-订阅(Publish/Subscribe)模式、模型视图(Model/View)模式、源监听器(Source/Listener)模式、从属者(Dependents)模式。它定义了对象之间的一对多的关系,使得一个对象的状态发生改变时 阅读全文
摘要:
### 概述 备忘录模式(Memento Pattern)又称 Token,它在不破坏封装性的前提下,捕获一个对象的内部状态并在该对象之外保存,在之后可以将该对象的状态恢复至保存时的样子。 **优点**:提供了状态恢复机制。 **缺点**:资源消耗大。 ```java class Originato 阅读全文
摘要:
### 概述 中介者模式 (Mediator Pattern) 又称调停者模式。它定义一个中介对象封装一系列对象的交互,使得交互的对象不需要显式地引用。 **优点**:简化对象之间的交互,减少子类的数量。 **缺点**:中介类可能非常复杂。 ```java abstract class Abstra 阅读全文
摘要:
### 概述 迭代器模式 (Iterator Pattern) 又称游标 (Cursor)。它提供了一种方式访问聚合对象中的元素而不用暴露这个对象的内部表示。 **优点**:符合“单一职责原则”、“开闭原则”。 **缺点**:增加系统复杂度。 ```java interface Iterator { 阅读全文
摘要:
### 概述 解释器模式 (Interpreter Pattern) 定义语言的文法,同时创建一个解释器解释该语言的句子。 **优点**:易于扩展、符合“开闭原则”。 **缺点**:执行效率低,复杂文法难以维护。 图示: ![image](https://img2022.cnblogs.com/bl 阅读全文
摘要:
### 概述 命令模式 (Command Pattern) 又称动作 (Action) 模式、事务 (Transaction) 模式。它将请求封装成一个对象,使得请求的发送者和接收者解耦。 **优点**:降低耦合度,符合“开闭原则”。 **缺点**:需要的类数量可能过多。 ```java inter 阅读全文
摘要:
### 概述 职责链模式 (Chain of Responsibility Pattern) 又称责任链模式。它将请求的发送者和接收者解耦,如果有多个接收者,将这些接收者连接成一条链,请求沿着这条链传递,直到被处理。 **优点**:降低耦合度,符合“开闭原则”。 **缺点**:请求不一定会被处理。链 阅读全文
摘要:
### 概述 代理模式 (Proxy/Surrogate Pattern) 给某个对象一个代理,由代理控制对原对象的使用。 **优点**:一定程度降低耦合度。 **缺点**:实现复杂。 ```java interface Subject { void a(); } class Real implem 阅读全文