• 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
  • 相关阅读:
    Cesium之TerrainProvider地形数据获取
    5081. 重复局面
    『从零开始学小程序』媒体组件video组件
    javascript 深浅拷贝
    解析java中的String类中的常用方法(三)
    雷特智能家居龙海祁:从专业调光到全宅智能,20年专注成就专业
    LeetCode高频题:n杯溶液按照顺序排成一排,可以混合相邻2杯,合并代价/时间是两杯质量和,经过n-1次合并为1杯,最小时间/代价是多少
    rust 引用详解
    Java+Tif图片转Jpg
    23种设计模式(十五)解释器模式(阁瑞钛伦特软件-九耶实训)
  • 原文地址:https://blog.csdn.net/liuming690452074/article/details/134410671