1.创建型模式:
- 工厂方法模式(Factory Method): 定义一个用于创建对象的接口,但是将对象的实际创建延迟到子类中。
- 抽象工厂模式(Abstract Factory): 提供一个接口,用于创建一系列相关或相互依赖的对象,而无需指定其具体类。

- 单例模式(Singleton): 确保一个类只有一个实例,并提供全局访问点。
- 建造者模式(Builder): 将一个复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。
- 原型模式(Prototype): 用于复制或克隆一个已有的对象,而无需对其具体类进行依赖。
2.结构型模式:
- 适配器模式(Adapter): 将一个类的接口转换成客户端希望的另一个接口,使得原本由于接口不兼容而不能在一起工作的类能够一起工作。
- 装饰者模式(Decorator): 动态地给对象添加额外的职责,就扩展功能而言,装饰模式比生成子类更为灵活。
- 代理模式(Proxy): 为其他对象提供一种代理以控制对这个对象的访问。
- 组合模式(Composite): 将对象组合成树形结构以表示"部分-整体"的层次结构,使得客户端统一处理单个对象和组合对象。
- 享元模式(Flyweight): 使用共享对象来支持大量细粒度的对象,以减少内存占用和提高性能。
3.行为型模式:
- 策略模式(Strategy): 定义一系列算法,将它们封装起来,并使它们可以互相替换,使得算法的变化不会影响到使用算法的客户端。
- 观察者模式(Observer): 定义对象间的一种一对多的依赖关系,使得当一个对象的状态发生改变时,所有依赖于它的对象都能够得到通知并自动更新。
- 模板方法模式(Template Method): 定义一个算法的骨架,将一些步骤延迟到子类中,使得子类可以在不改变算法结构的情况下重定义算法的某些步骤。
- 命令模式(Command): 将请求封装成一个对象,使得可以用不同的请求来参数化客户端对象,并且可以对请求排队或记录请求日志。
- 状态模式(State): 允许一个对象在其内部状态改变时改变它的行为,使得对象看起来似乎修改了它的类。
设计模式是软件工程领域的重要概念,它们提供了一种通用的解决方案,帮助开发人员更好地组织和管理代码,同时提高了代码的可维护性和可扩展性。#为一年后的小目标不断努力奋斗#