摘要:
装饰模式是一种结构型设计模式,它允许我们动态地将行为添加到对象中,而不需要使用继承。装饰模式通常包括以下几个角色: - 抽象组件(Component):定义了一个接口,用于被装饰对象和装饰器共同实现。 - 具体组件(Concrete Component):实现了抽象组件定义的接口,并提供了默认的行为 阅读全文
摘要:
模板模式是一种行为型设计模式,它定义了一个算法的骨架,将一些步骤延迟到子类中实现。模板模式通常包括以下几个角色: - 抽象类(Abstract Class):定义了一个算法的骨架,其中包含一些抽象方法,用于延迟到子类中实现。 - 具体类(Concrete Class):实现了抽象类定义的接口,并实现 阅读全文
摘要:
解释器模式是一种行为型设计模式,它定义了一种语言,用于解释和执行特定的任务。解释器模式通常包括以下几个角色: - 抽象表达式(Abstract Expression):定义了一个接口,用于解释和执行特定的任务。 - 终结符表达式(Terminal Expression):实现了抽象表达式定义的接口, 阅读全文
摘要:
迭代器模式是一种行为型设计模式,它允许我们按照顺序访问一个聚合对象中的元素,而不需要暴露该对象的内部表示。迭代器模式通常包括以下几个角色: - 迭代器(Iterator):定义了一个接口,用于按照顺序访问聚合对象中的元素。 - 具体迭代器(Concrete Iterator):实现了迭代器定义的接口 阅读全文
摘要:
备忘录模式是一种行为型设计模式,它允许我们在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。备忘录模式通常包括以下几个角色: - 发起人(Originator):定义了一个接口,用于创建备忘录对象和恢复对象状态。 - 备忘录(Memento):存储发起人对象的内部状态。 - 阅读全文
摘要:
中介模式是一种行为型设计模式,它允许对象之间通过一个中介对象进行通信,从而减少对象之间的直接耦合。中介模式通常包括以下几个角色: - 中介者(Mediator):定义了一个接口,用于与各个同事对象通信,并协调它们之间的交互。 - 具体中介者(Concrete Mediator):实现了中介者定义的接 阅读全文
摘要:
![image](https://img2023.cnblogs.com/blog/1064540/202306/1064540-20230616190838017-279630608.png) 外观模式是一种结构型设计模式,它为复杂的子系统提供了一个简单的接口,从而隐藏了子系统的复杂性。外观模式通 阅读全文
摘要:
命令模式是一种行为型设计模式,它将请求封装成对象,从而允许我们将请求的发送者和接收者之间的耦合关系解耦。命令模式通常包括以下几个角色: - 命令(Command):定义了一个接口,用于封装具体命令的实现。 - 具体命令(Concrete Command):实现了命令定义的接口,并具体地实现了命令的逻 阅读全文
摘要:
责任链模式是一种行为型设计模式,它允许多个对象都有机会处理请求,从而避免了请求的发送者和接收者之间的耦合关系。责任链模式通常包括以下几个角色: - 抽象处理者(Handler):定义了一个接口,用于处理请求,并维护一个对下一个处理者的引用。 - 具体处理者(Concrete Handler):实现了 阅读全文
摘要:
策略模式是一种行为型设计模式,它定义了一系列算法,并将每个算法封装起来,使它们可以相互替换。策略模式通常包括以下几个角色: - 环境(Context):维护一个对策略对象的引用,并将客户端请求委托给当前策略对象。 - 抽象策略(Strategy):定义了一个接口,用于封装具体算法的实现。 - 具体策 阅读全文
摘要:
状态模式是一种行为型设计模式,它允许对象在内部状态发生改变时改变它的行为。状态模式通常包括以下几个角色: - 环境(Context):定义了客户端感兴趣的接口,并维护一个当前状态对象。 - 抽象状态(State):定义了一个接口,用于封装与环境的一个特定状态相关的行为。 - 具体状态(Concret 阅读全文
摘要:
观察者模式是一种行为型设计模式,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象,当主题对象发生变化时,它会自动通知所有观察者对象,使它们能够及时更新自己的状态。观察者模式通常包括以下几个角色: - 主题(Subject):定义了被观察的对象,可以有多个观察者监听它。 - 观察者 阅读全文
摘要:
享元模式是一种结构型设计模式,它通过共享对象来减少内存使用和对象创建的数量。享元模式通常包括以下几个角色: - 享元工厂(Flyweight Factory):负责创建和管理享元对象。 - 享元(Flyweight):表示共享的对象,包含内部状态和外部状态。 - 内部状态(Intrinsic Sta 阅读全文
摘要:
外观模式是一种结构型设计模式,它提供了一个简单的接口,隐藏了系统的复杂性,使得客户端可以更容易地使用系统。外观模式通常包括以下几个角色: - 外观(Facade):提供了一个简单的接口,隐藏了系统的复杂性,使得客户端可以更容易地使用系统。 - 子系统(Subsystem):实现了系统的功能,但对客户 阅读全文
摘要:
模式是一种结构型设计模式,它允许我们将对象组合成树形结构来表示“部分-整体”的层次结构。组合模式通常包括以下几个角色: - 组件(Component):定义了组合中所有对象的通用接口,可以是一个抽象类或接口。 - 叶子节点(Leaf):表示组合中的叶子节点,它没有子节点。 - 组合节点(Compos 阅读全文
摘要:
桥接模式是一种结构型设计模式,它将抽象部分和实现部分分离开来,使它们可以独立地变化。桥接模式通常包括以下几个角色: - 抽象部分(Abstraction):定义了抽象部分的接口,并持有一个实现部分的引用。 - 扩展抽象部分(Refined Abstraction):扩展了抽象部分的接口,可以包含一些 阅读全文
摘要:
代理模式是一种结构型设计模式,它提供了一个代理对象来控制对另一个对象的访问。代理模式通常包括以下几个角色: - 抽象主题(Subject):定义了代理对象和真实对象的公共接口,可以是一个抽象类或接口。 - 真实主题(Real Subject):定义了代理对象所代表的真实对象。 - 代理(Proxy) 阅读全文
摘要:
适配器模式是一种结构型设计模式,它可以将一个类的接口转换成客户端所期望的另一个接口。适配器模式通常包括以下几个角色: - 目标接口(Target):定义了客户端所期望的接口,可以是一个抽象类或接口。 - 适配器(Adapter):实现了目标接口,并持有一个被适配对象的引用,负责将客户端的请求转换成被 阅读全文
摘要:
单例模式是一种创建型设计模式,它保证一个类只有一个实例,并提供一个全局访问点。单例模式通常包括以下几个角色: - 单例(Singleton):定义了一个静态方法或类方法,用于获取单例对象。 - 客户端(Client):使用单例对象来完成具体的操作。 下面是一个简单的 Python 示例,演示了如何使 阅读全文
摘要:
原型模式是一种创建型设计模式,它通过复制现有对象来创建新对象,而不是通过实例化类来创建新对象。原型模式通常包括以下几个角色: - 原型(Prototype):定义了一个克隆自身的接口,用于复制现有对象。 - 具体原型(Concrete Prototype):实现了原型接口,负责复制自身。 - 客户端 阅读全文