• java源码用到的设计模式


    Java 中有许多常用的设计模式,它们是为了解决特定问题而被反复使用和验证的经验总结。以下是一些常见的 Java 设计模式:

    创建型模式

    1. 工厂模式 (Factory Pattern):

      • 提供一个创建对象的接口,但是由子类决定实例化哪个类。
      • 例如:java.util.Calendar#getInstance()
    2. 抽象工厂模式 (Abstract Factory Pattern):

      • 提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们的具体类。
      • 例如:javax.xml.parsers.DocumentBuilderFactory
    3. 单例模式 (Singleton Pattern):

      • 保证一个类只有一个实例,并提供一个全局访问点。
      • 例如:java.lang.Runtime#getRuntime()
    4. 建造者模式 (Builder Pattern):

      • 将一个复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。
      • 例如:java.lang.StringBuilder#append()
    5. 原型模式 (Prototype Pattern):

      • 通过复制现有对象来创建新对象,而不是通过实例化。

    结构型模式

    1. 适配器模式 (Adapter Pattern):

      • 将一个类的接口转换成客户希望的另一个接口。
      • 例如:java.util.Arrays#asList()
    2. 桥接模式 (Bridge Pattern):

      • 将抽象部分与它的实现部分分离,使它们都可以独立地变化。
      • 例如:java.sql.DriverManager
    3. 组合模式 (Composite Pattern):

      • 将对象组合成树形结构以表示"部分-整体"的层次结构。
      • 例如:java.awt.Container 和 javax.swing.JComponent
    4. 装饰者模式 (Decorator Pattern):

      • 动态地给一个对象添加一些额外的职责,而不改变其结构。
      • 例如:java.io.BufferedInputStream
    5. 外观模式 (Facade Pattern):

      • 为子系统中的一组接口提供一个一致的界面。
      • 例如:javax.faces.context.FacesContext
    6. 享元模式 (Flyweight Pattern):

      • 通过共享技术来有效地支持大量细粒度的对象。
      • 例如:java.lang.Integer#valueOf(int)
    7. 代理模式 (Proxy Pattern):

      • 为其他对象提供一种代理以控制对这个对象的访问。
      • 例如:java.lang.reflect.Proxy

    行为型模式

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

      • 使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。
      • 例如:java.util.logging.Logger#log()
    2. 命令模式 (Command Pattern):

      • 将请求封装成一个对象,从而使用户可以用不同的请求对客户进行参数化。
      • 例如:java.lang.Runnable
    3. 解释器模式 (Interpreter Pattern):

      • 给定一个语言,定义它的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中的句子。
      • 例如:java.util.Pattern
    4. 迭代器模式 (Iterator Pattern):

      • 提供一种方法顺序访问一个聚合对象中各个元素,而不暴露其内部的表示。
      • 例如:java.util.Iterator 和 java.util.Enumeration
    5. 中介者模式 (Mediator Pattern):

      • 用一个中介对象来封装一系列的对象交互。
      • 例如:java.util.Timer
    6. 备忘录模式 (Memento Pattern):

      • 在不破坏封装的情况下,捕获一个对象的内部状态,并在该对象之外保存这个状态。
      • 例如:java.util.Calendar
    7. 观察者模式 (Observer Pattern):

      • 定义了一种一对多的依赖关系,使得当一个对象改变状态时,所有依赖于它的对象都会得到通知并自动更新。
      • 例如:java.util.Observer 和 java.util.Observable
    8. 状态模式 (State Pattern):

      • 允许一个对象在其内部状态改变时改变其行为。
      • 例如:javax.faces.lifecycle.Lifecycle#execute()
    9. 策略模式 (Strategy Pattern):

      • 定义一系列算法,将每个算法都封装起来,并使它们之间可以互换。
      • 例如:java.util.Comparator
    10. 模板方法模式 (Template Method Pattern):

    • 定义一个算法的骨架,将一些步骤延迟到子类中。
    • 例如:java.util.Collections#sort()
    1. 访问者模式 (Visitor Pattern):
    • 表示一个作用于某对象结构中的各元素的操作,它使你可以定义新的操作而无需改变这些元素的类。
    • 例如:javax.lang.model.element.ElementVisitor
  • 相关阅读:
    用map函数让你的python起飞
    nginx启动报错纠正
    发展高质量存储力,中国高科技力量聚浪成潮
    深信服2023秋季校园招聘C++笔试A卷
    项目(智慧教室)第四部分,页面交互功能,WebServer建立与使用,
    【HTML5】语义化标签记录
    【CAS:41994-02-9 |Biotinyl tyramide】生物素基酪氨酰胺价格
    MySQL实践——MySQL权限
    PCB 二:AD 原理图绘制以及PCB绘制
    【ArcGIS微课1000例】0077:ArcGIS生成经纬网(shp格式)
  • 原文地址:https://blog.csdn.net/liuming690452074/article/details/134410671