概述代理模式是一种结构型设计模式,它允许通过创建一个代理对象来控制对其他对象的访问。代理对象充当了客户端和实际对象之间的中介,可以在访问实际对象之前或之后添加额外的逻辑。适用场景代理模式适用于以下情况:当你想要在访问一个对象时添加额外的逻辑,而不改变原始对象的代码。当你需要对原始对象进行访问控制,例如权限验证、缓存等。当你希望延迟实例化一个对象,直到真正需要它的时候。结构代理模式由以下组件组...
概述备忘录模式是一种行为型设计模式,它允许你捕获对象的内部状态并在需要时恢复它。通过将对象状态封装在备忘录对象中,备忘录模式可以在不破坏对象封装性的情况下实现状态的保存和恢复。适用场景备忘录模式适用于以下情况:当你需要保存和恢复对象的内部状态时,以便在后续时间点重新使用该状态。当直接访问对象的内部状态会暴露对象的实现细节,从而破坏封装性时。当你希望通过保存对象状态的历史记录来实现撤销/重做操...
概述访问者模式是一种行为型设计模式,它允许你在不修改对象结构的前提下定义新的操作。通过将操作封装在访问者对象中,访问者模式可以让你在不同的对象上执行不同的操作。适用场景访问者模式适用于以下情况:当对象结构包含多个不同类型的对象,并且你希望对这些对象执行不同的操作时。当你希望在不修改对象类的前提下,新增一些新的操作或行为。当对象结构经常变化,但操作算法保持相对稳定时。结构访问者模式由以下组件组...
概述命令模式是一种行为型设计模式,它将请求封装成一个独立的对象,从而使不同的请求可以被参数化,并且能够将请求的发起者与请求的接收者解耦。适用场景命令模式适用于以下情况:当需要将请求发送者和请求接收者解耦时。当需要在不同的时间指定、排队和执行请求时。当需要支持撤销和重做操作时。结构命令模式由以下组件组成:命令(Command):命令接口定义了执行命令的方法。具体命令(Concrete Comm...
概述状态模式是一种行为型设计模式,它允许对象在其内部状态发生改变时改变其行为。该模式将对象的行为封装在不同的状态类中,并通过上下文对象进行管理和切换。适用场景状态模式适用于以下情况:当一个对象的行为取决于其内部状态,并且必须在运行时根据状态改变行为时。当一个对象的行为在不同的状态下具有不同的实现时。当需要通过组合而不是继承来扩展对象的行为时。结构状态模式由以下组件组成:上下文(Context...