通知图标

欢迎访问津桥芝士站

设计模式-总目录

来自AI助手的总结
文章介绍了创建型、结构型和行为型三大类设计模式及其应用,帮助开发者解决软件设计问题并提高代码质量。

一、概述

设计模式可以根据其本质和目的一般分为三大类:创建型模式、结构型模式和行为型模式。下面是常见的设计模式及其分类。

二、分类

1. 创建型模式

创建型模式关注于如何实例化对象。它们提供了一个创建对象的接口,而无需了解其具体的实现。

  1. 单例模式 (Singleton Pattern)

    确保一个类只有一个实例,并提供全局访问点。

  2. 工厂方法模式 (Factory Method Pattern)

    定义一个用于创建对象的接口,让子类决定实例化的类。

  3. 抽象工厂模式 (Abstract Factory Pattern)

    提供一个接口,用于创建一系列相关或相互依赖的对象,而不需要指定具体类。

  4. 建造者模式 (Builder Pattern)

    使用多个简单的对象一步步构建一个复杂的对象。

  5. 原型模式 (Prototype Pattern)

    通过复制已有的实例来创建新的对象,而不是通过类实例化。

2. 结构型模式

结构型模式主要关注于对象之间的组合,帮助确定类或对象的结构以形成复杂的功能。

  1. 适配器模式 (Adapter Pattern)

    将一个类的接口转换为客户端期望的另一个接口,使得原本因接口不兼容而无法一起工作的类可以一起工作。

  2. 桥接模式 (Bridge Pattern)

    将一个抽象类与它的实现类分离,使它们可以独立变化,增加灵活性。

  3. 组合模式 (Composite Pattern)

    将对象组合成树形结构来表示部分-整体层次结构,以便客户端能够一致地对待单个对象和对象集合。

  4. 装饰模式 (Decorator Pattern)

    动态地给一个对象添加额外的职责或行为,而不影响其他对象,实现灵活的功能扩展。

  5. 外观模式 (Facade Pattern)

    为一组接口提供一个统一的高层接口,使子系统更易使用。

  6. 享元模式 (Flyweight Pattern)

    通过共享对象来有效地支持大量细粒度的对象。

  7. 代理模式 (Proxy Pattern)

    通过引入代理对象来控制对另一个对象的访问,可以实现延迟加载、访问控制等功能。

3. 行为型模式

行为型模式着重关注对象之间的互动,涉及如何通过对对象间的沟通来完成任务。

  1. 观察者模式 (Observer Pattern)

    定义一种一对多的关系,当一个对象状态改变时,所有依赖于它的对象都得到通知并被自动更新。

  2. 策略模式 (Strategy Pattern)

    定义一系列算法,将每一个算法封装起来,并使它们可以互相替换,算法的使用与实现分开。

  3. 状态模式 (State Pattern)

    让一个对象在其内部状态发生改变时改变它的行为,具有不同状态的对象会表现出不同的行为。

  4. 命令模式 (Command Pattern)

    将请求封装为对象,以便进行参数化和操作延迟,适合用于实现撤销/重做功能。

  5. 模板方法模式 (Template Method Pattern)

    在一个方法中定义算法的框架,而将一些步骤延迟到子类中实现,从而使得子类能够重定义算法的某些特定步骤。

  6. 访问者模式 (Visitor Pattern)

    通过在一个对象结构上定义新的操作,使得在不改变对象结构的前提下可以添加新的功能。

  7. 链式责任模式 (Chain of Responsibility Pattern)

    使多个对象都有机会处理请求,而无需明确指定处理者,多个处理者可在处理者之间传递请求。

  8. 中介者模式 (Mediator Pattern)

    定义一个中介对象,来封装一组对象之间的交互,从而避免对象之间直接引用,保护对象的松耦合。

  9. 迭代器模式 (Iterator Pattern)

    提供一个方法访问一个集合对象的元素,而无需暴露该对象的内部表示。

  10. 备忘录模式 (Memento Pattern)

    在不违反封装性的前提下,捕获一个对象的内部状态,并在该对象的状态改变时可以将其恢复。

  11. 解释器模式 (Interpreter Pattern)

    实现一种语言的语法解释,允许通过定义文法来在文法中解释表达式。

三、语言分类目录

四、总结

通过阅读,可以看到设计模式为软件设计中的各种问题提供了解决方案,帮助开发者创建易于维护、扩展和理解的代码。根据项目需求和特定问题,可灵活运用这些设计模式,以提高代码质量和开发效率。

请登录后发表评论

    没有回复内容