一、概述
设计模式可以根据其本质和目的一般分为三大类:创建型模式、结构型模式和行为型模式。下面是常见的设计模式及其分类。
二、分类
1. 创建型模式
创建型模式关注于如何实例化对象。它们提供了一个创建对象的接口,而无需了解其具体的实现。
-
单例模式 (Singleton Pattern)
确保一个类只有一个实例,并提供全局访问点。
-
工厂方法模式 (Factory Method Pattern)
定义一个用于创建对象的接口,让子类决定实例化的类。
-
抽象工厂模式 (Abstract Factory Pattern)
提供一个接口,用于创建一系列相关或相互依赖的对象,而不需要指定具体类。
-
建造者模式 (Builder Pattern)
使用多个简单的对象一步步构建一个复杂的对象。
-
原型模式 (Prototype Pattern)
通过复制已有的实例来创建新的对象,而不是通过类实例化。
2. 结构型模式
结构型模式主要关注于对象之间的组合,帮助确定类或对象的结构以形成复杂的功能。
-
适配器模式 (Adapter Pattern)
将一个类的接口转换为客户端期望的另一个接口,使得原本因接口不兼容而无法一起工作的类可以一起工作。
-
桥接模式 (Bridge Pattern)
将一个抽象类与它的实现类分离,使它们可以独立变化,增加灵活性。
-
组合模式 (Composite Pattern)
将对象组合成树形结构来表示部分-整体层次结构,以便客户端能够一致地对待单个对象和对象集合。
-
装饰模式 (Decorator Pattern)
动态地给一个对象添加额外的职责或行为,而不影响其他对象,实现灵活的功能扩展。
-
外观模式 (Facade Pattern)
为一组接口提供一个统一的高层接口,使子系统更易使用。
-
享元模式 (Flyweight Pattern)
通过共享对象来有效地支持大量细粒度的对象。
-
代理模式 (Proxy Pattern)
通过引入代理对象来控制对另一个对象的访问,可以实现延迟加载、访问控制等功能。
3. 行为型模式
行为型模式着重关注对象之间的互动,涉及如何通过对对象间的沟通来完成任务。
-
观察者模式 (Observer Pattern)
定义一种一对多的关系,当一个对象状态改变时,所有依赖于它的对象都得到通知并被自动更新。
-
策略模式 (Strategy Pattern)
定义一系列算法,将每一个算法封装起来,并使它们可以互相替换,算法的使用与实现分开。
-
状态模式 (State Pattern)
让一个对象在其内部状态发生改变时改变它的行为,具有不同状态的对象会表现出不同的行为。
-
命令模式 (Command Pattern)
将请求封装为对象,以便进行参数化和操作延迟,适合用于实现撤销/重做功能。
-
模板方法模式 (Template Method Pattern)
在一个方法中定义算法的框架,而将一些步骤延迟到子类中实现,从而使得子类能够重定义算法的某些特定步骤。
-
访问者模式 (Visitor Pattern)
通过在一个对象结构上定义新的操作,使得在不改变对象结构的前提下可以添加新的功能。
-
链式责任模式 (Chain of Responsibility Pattern)
使多个对象都有机会处理请求,而无需明确指定处理者,多个处理者可在处理者之间传递请求。
-
中介者模式 (Mediator Pattern)
定义一个中介对象,来封装一组对象之间的交互,从而避免对象之间直接引用,保护对象的松耦合。
-
迭代器模式 (Iterator Pattern)
提供一个方法访问一个集合对象的元素,而无需暴露该对象的内部表示。
-
备忘录模式 (Memento Pattern)
在不违反封装性的前提下,捕获一个对象的内部状态,并在该对象的状态改变时可以将其恢复。
-
解释器模式 (Interpreter Pattern)
实现一种语言的语法解释,允许通过定义文法来在文法中解释表达式。
三、语言分类目录
四、总结
通过阅读,可以看到设计模式为软件设计中的各种问题提供了解决方案,帮助开发者创建易于维护、扩展和理解的代码。根据项目需求和特定问题,可灵活运用这些设计模式,以提高代码质量和开发效率。
没有回复内容