设计模式应用场景

设计模式简介

工厂模式(Factory Pattern):使用工厂方法创建对象,而不是使用new关键字直接实例化对象。

抽象工厂模式(Abstract Factory Pattern):提供一个创建一系列相关对象的接口,而无需指定它们的具体类。

单例模式(Singleton Pattern):限制一个类只能有一个实例并提供一个全局访问点。

建造者模式(Builder Pattern):将复杂对象的构建过程分解为多个简单的步骤,以便逐步构建复杂对象。

原型模式(Prototype Pattern):基于已有对象,通过克隆来创建新对象。

适配器模式(Adapter Pattern):将一个类的接口转换成客户端所期望的另一种接口,使原本不兼容的类能够合作无间。

桥接模式(Bridge Pattern):将抽象部分与它的实现部分分离,使它们都可以独立变化。

组合模式(Composite Pattern):将对象组合成树形结构,以表示"部分-整体"的层次结构,使得用户对单个对象和组合对象的使用具有一致性。

装饰器模式(Decorator Pattern):动态地给一个对象添加一些额外的职责,同时又不改变其结构。

外观模式(Facade Pattern):提供一个简单的接口,以便于客户端与子系统的通信。

享元模式(Flyweight Pattern):运用共享技术来有效地支持大量细粒度的对象。

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

策略模式(Strategy Pattern):定义一系列算法,将它们封装起来,并让它们可以相互替换。

命令模式(Command Pattern):将一个请求封装成一个对象,从而使您可以用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤消的操作。

职责链模式(Chain of Responsibility Pattern):将请求的发送者和接收者解耦,让多个对象都有机会处理这个请求。

中介者模式(Mediator Pattern):用一个中介对象来封装一系列对象之间的交互,从而使这些对象之间的交互更加松散,且复杂性得以抵御。

观察者模式(Observer Pattern):定义一种一对多的依赖关系,以便每当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。

备忘录模式(Memento Pattern):在不削弱封装性的前提下,捕获对象的内部状态,并在该对象之外保存这个状态,以便于以后可将该对象恢复到原先状态。

访问者模式(Visitor Pattern):封装作用于某种数据结构中的各种元素的操作,它可以在不改变各元素类的前提下定义作用于这些元素的新操作。

状态模式(State Pattern):允许对象在内部状态改变时改变它的行为,使对象看起来似乎修改了它的类。

解释器模式(Interpreter Pattern):给定一个语言,定义它的语法的一种表示,并定义一个解释器,以便可以使用该表示来解释语言中的句子。

迭代器模式(Iterator Pattern):提供一种方法访问一个聚合对象中的各个元素,而又不需要暴露该对象的内部表示。

空对象模式(Null Object Pattern):使用一个"无操作"对象来代替实际的空值对象,以避免空对象检查。

设计模式应用场景

工厂模式:当你需要创建多个类型相似但又不完全相同的对象时,可以使用工厂模式来简化代码并提高可维护性。

抽象工厂模式:当你需要创建一系列相关的对象,而不想暴露具体实现细节的情况下,可以使用抽象工厂模式。

单例模式:当需要在应用程序中确保只有一个实例存在时,可以使用单例模式。

建造者模式:当需要创建复杂的对象,其构建过程可以分解为多个简单步骤时,可以使用建造者模式。

原型模式:当需要创建对象,且该对象需要基于一个现有对象进行创建时,可以使用原型模式。

适配器模式:当需要让一个类的接口与另一个类的接口兼容时,可以使用适配器模式。

桥接模式:当需要将实现与抽象分离,以便于它们可以独立变化时,可以使用桥接模式。

组合模式:当需要创建部分与整体的层次结构时,可以使用组合模式。

装饰器模式:当需要在对象上动态地添加功能时,可以使用装饰器模式。

外观模式:当需要为复杂的子系统提供简单的接口时,可以使用外观模式。

享元模式:当需要为大量重复使用的对象节省内存时,可以使用享元模式。

模板方法模式:当需要在算法中定义一个框架,以便让子类实现算法的具体操作时,可以使用模板方法模式。

策略模式:当需要动态地切换算法时,可以使用策略模式。

命令模式:当需要使用命令对象来封装尽可能多的细节以实现可撤销、排队等功能时,可以使用命令模式。

职责链模式:当需要解耦请求的发送者和接受者时,可以使用职责链模式。

中介者模式:当需要减少对象间的耦合度且对象间通信频繁度高时,可以使用中介者模式。

观察者模式:当需要实现一对多的依赖关系时,可以使用观察者模式。

备忘录模式:当需要在不破坏封装性的情况下保存对象的内部状态时,可以使用备忘录模式。

访问者模式:当需要封装一些操作,使得它们可以在数据结构中的多个元素上执行时,可以使用访问者模式。

状态模式:当需要动态让一个对象的行为随着其内部状态的改变而改变时,可以使用状态模式。

解释器模式:当需要解析一种特定的语言时,可以使用解释器模式。

迭代器模式:当需要遍历一个聚合对象时,可以使用迭代器模式。

空对象模式:当需要避免空值检查时,可以使用空对象模式。

你可能感兴趣的:(设计模式,设计模式)