设计模式

分类和概括

设计模式可以按照不同的分类标准进行分类,以下是几种常见的分类方法:

  1. 创建型模式:主要关注如何创建对象,包括单例模式、工厂模式、抽象工厂模式、建造者模式、原型模式等。
  2. 结构型模式:主要关注如何组合类和对象以形成更大的结构,包括适配器模式、桥接模式、组合模式、装饰器模式、外观模式、享元模式、代理模式等。
  3. 行为型模式:主要关注对象之间的通信方式及其责任分配,包括责任链模式、命令模式、解释器模式、迭代器模式、中介者模式、备忘录模式、观察者模式、状态模式、策略模式、模板方法模式、访问者模式等。
  4. 并发模式:主要关注并发编程中的问题和解决方案,包括活锁、死锁、信号量、屏障、读写锁、线程池等。
  5. 架构模式:主要关注如何组织和设计整个系统的结构,包括分层架构、MVC架构、微服务架构、事件驱动架构、消息队列架构等。

以上分类方法并不是互相排斥的,实际上一个模式可能同时属于不同的分类。使用不同的分类方法可以帮助开发人员更好地理解和运用设计模式。

创建型

创建型设计模式关注如何创建对象或实例化类,其细节包括:

  1. 工厂方法模式(Factory Method Pattern):定义一个用于创建对象的接口,由子类决定实例化哪一个类。使一个类的实例化延迟到其子类。
  2. 抽象工厂模式(Abstract Factory Pattern):提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们的具体类。将对象的实例化延迟到其子类。
  3. 建造者模式(Builder Pattern):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。通常用于创建复杂的对象,例如解析器、文档等。
  4. 原型模式(Prototype Pattern):用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。通常用于需要创建大量相似对象的情况。
  5. 单例模式(Singleton Pattern):确保一个类只有一个实例,并提供一个全局访问点。

这些设计模式的具体实现和使用方式可能因应用场景不同而有所不同。