当前位置:   article > 正文

详解Java中设计模式28种方式_java设计模式

java设计模式

如果想看示例请打开Java种设计模式的28种

1. 简单工厂模式(Simple Factory)

简单工厂模式是一种创建型设计模式,它提供一个工厂类,根据客户端的请求来创建不同的产品对象。客户端只需要提供必要的参数,而无需关心具体的产品对象是如何创建的。简单工厂模式将对象的创建逻辑封装在工厂类中,使得客户端与具体产品解耦。

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

工厂方法模式也是一种创建型设计模式,它定义了一个创建对象的接口,但将具体的对象创建延迟到子类中。每个子类都可以根据需求提供自己的实现,从而创建不同的产品对象。工厂方法模式允许客户端通过调用工厂方法来创建对象,而无需关心具体的产品类。

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

抽象工厂模式是一种创建型设计模式,它提供了一个接口或抽象类作为工厂,用于创建一系列相关或依赖的产品对象。抽象工厂模式将产品的创建逻辑封装在工厂中,使得客户端可以通过调用工厂的方法来创建一组相关的产品对象。这样可以确保创建的产品对象是相互兼容的。

4. 单例模式(Singleton)

单例模式是一种创建型设计模式,它确保一个类只有一个实例,并提供一个全局访问点来获取该实例。单例模式常用于需要全局访问且只能有一个实例的情况,例如日志记录器、数据库连接池等。常见的单例模式实现方式包括懒汉式、饿汉式和双重检验锁式。

(1) 懒汉式单例模式
   懒汉式单例模式是指在首次使用时才创建实例。
   在多线程环境下,需要考虑线程安全性,
   可以使用加锁机制来保证只有一个线程能够创建实例。
  • 1
  • 2
  • 3
(2) 饿汉式单例模式
   饿汉式单例模式是指在类加载时就创建实例。
   由于在类加载时就创建实例,因此不存在多线程环境下的线程安全问题。
   但这也意味着无论是否使用该实例,都会进行实例的创建,
   可能会造成资源浪费。
  • 1
  • 2
  • 3
  • 4
(3) 双重检验锁式单例模式
   双重检验锁式单例模式是指在实例创建过程中进行了两次检验,
   以保证线程安全和实例的唯一性。通过使用双重检验锁机制和volatile关键字,
   可以在多线程环境下安全地创建单例实例,并且在实例创建后无需加锁,提高了性能。
  • 1
  • 2
  • 3
5. 建造者模式(Builder)

建造者模式是一种创建型设计模式,它将一个复杂对象的构建过程与其表示分离,使得同样的构建过程可以创建不同的表示。建造者模式通过定义一个抽象的建造者接口和具体的建造者类来实现对象的构建过程。客户端通过指定具体的建造者来创建对象,而无需关心对象的具体构建细节。

6. 原型模式(Prototype)

原型模式是一种创建型设计模式,它通过复制现有对象来创建新的对象,而无需依赖具体类。原型模式使用原型实例作为创建对象的基础,并通过克隆来创建新的对象。原型模式适用于创建成本较高的对象,或者需要根据已有对象进行变体创建的情况。

7. 适配器模式(Adapter)

适配器模式是一种结构型设计模式,它允许将不兼容的接口转换为客户端所期望的接口。适配器模式通过创建一个适配器类,将原始接口转换为目标接口,并将客户端的请求委派给适配器类来处理。适配器模式可以解决两个不兼容接口之间的接口转换问题。

8. 桥接模式(Bridge)

桥接模式是一种结构型设计模式,它将抽象部分和实现部分分离,使它们可以独立地变化。桥接模式通过创建一个桥接接口,将抽象部分和实现部分分离,并通过委托的方式将抽象部分的操作委托给实现部分。桥接模式可以避免在抽象部分和实现部分之间的紧耦合关系,使得它们可以独立地进行扩展和变化。

9. 组合模式(Composite)

组合模式是一种结构型设计模式,它将对象组合成树形结构以表示"部分-整体"的层次结构。组合模式使得客户端可以统一处理单个对象和组合对象,而无需区分它们的具体类型。组合模式通过定义一个抽象的组件接口和具体的组件类来实现对象的组合和操作。

10. 装饰器模式(Decorator)

装饰器模式是一种结构型设计模式,它允许在不修改现有对象结构的情况下,
动态地添加额外的行为或责任。装饰器模式通过创建一个装饰器类,
它包装了原始对象,并在保持原始对象接口的情况下,提供了额外的功能。
装饰器模式可以在运行时动态地添加或删除对象的功能,而无需修改原始对象。

11. 外观模式(Facade)

外观模式是一种结构型设计模式,它提供了一个统一的接口,用于访问子系统中的一组接口。它通过创建一个高层接口,简化了客户端与子系统之间的交互。外观模式隐藏了子系统的复杂性,使得客户端可以更方便地使用子系统的功能。

12. 享元模式(Flyweight)

享元模式是一种结构型设计模式,它通过共享对象来减少内存使用和提高性能。享元模式将对象分为可共享的内部状态和不可共享的外部状态。内部状态可以被多个对象共享,而外部状态是独立于对象的,并且在使用时需要传递给对象。通过共享内部状态,享元模式可以减少对象的数量,从而节省内存。

13. 观察者模式(Observer)

观察者模式是一种行为型设计模式,它定义了一种一对多的依赖关系,当一个对象的状态发生变化时,它的所有依赖者都会收到通知并自动更新。观察者模式将对象之间的关系解耦,使得它们可以独立地进行交互和变化。

14. 策略模式(Strategy)

策略模式是一种行为型设计模式,它定义了一系列的算法,并将每个算法封装在独立的策略类中,使得它们可以相互替换。策略模式使得算法的变化可以独立于使用算法的客户端,从而提高了代码的灵活性和可维护性。

15. 模板方法模式(Template Method)

模板方法模式是一种行为型设计模式,它定义了一个算法的骨架,将一些步骤的实现延迟到子类中。模板方法模式通过将共同的代码放在父类中,而将具体的实现细节留给子类来实现,从而实现了代码的复用和扩展。

16. 命令模式(Command)

命令模式是一种行为型设计模式,它将请求封装成一个对象,从而使得可以用不同的请求对客户端进行参数化。命令模式将请求的发送者和接收者解耦,使得发送者不需要知道请求的具体执行过程,只需通过命令对象来发起请求。

17. 责任链模式(Chain of Responsibility)

责任链模式是一种行为型设计模式,它将请求的发送者和接收者解耦,并通过一条链式结构来处理请求。每个处理者都有机会处理请求,如果一个处理者不能处理请求,它会将请求传递给下一个处理者,直到有一个处理者能够处理请求或者请求到达链的末尾。

18. 状态模式(State)

状态模式是一种行为型设计模式,它允许对象在内部状态发生改变时改变其行为。状态模式通过将不同的状态封装成独立的类,并将对象的行为委托给当前的状态对象来实现状态的切换和行为的变化。

19. 访问者模式(Visitor)

访问者模式是一种行为型设计模式,它允许在不改变被访问类的结构的情况下,定义新的操作。访问者模式通过将操作封装在访问者对象中,并在被访问类中提供一个接受访问者的方法,从而实现了对被访问类的操作的扩展。

20. 中介者模式(Mediator)

中介者模式是一种行为型设计模式,它通过封装一系列对象之间的交互,将对象之间的直接通信转换为通过中介者进行的间接通信。中介者模式可以减少对象之间的耦合度,使得对象之间的交互更加灵活和可维护。

21. 备忘录模式(Memento)

备忘录模式是一种行为型设计模式,它允许在不破坏封装的情况下捕获和存储对象的内部状态,并在需要时恢复对象到之前的状态。备忘录模式通过将对象的状态保存在备忘录对象中,从而可以实现对象状态的保存和恢复。

22. 解释器模式(Interpreter)

解释器模式是一种行为型设计模式,它定义了一种语言的文法,并解析该语言中的表达式。解释器模式通过定义表达式的抽象语法树和相应的解释器来实现对表达式的解析和执行。它将一个复杂的问题分解为一系列简单的表达式,并提供了一种灵活的方式来扩展和组合这些表达式。

23. 并发模式(Concurrency Patterns)

并发模式是一种设计模式,用于处理并发编程中的常见问题。并发模式提供了一套经过验证的解决方案,用于管理共享资源、确保线程安全、协调并发操作等。这些模式可以帮助开发人员编写可靠、高效和可扩展的并发代码。

24. 互斥锁模式(Mutex)

互斥锁模式是一种并发模式,用于保护共享资源免受并发访问的干扰。互斥锁(Mutex)是一种同步原语,它提供了对共享资源的独占访问。在多线程环境下,通过使用互斥锁,只允许一个线程访问共享资源,其他线程需要等待锁的释放。

25. 读写锁模式(Read-Write Lock)

读写锁模式是一种并发模式,用于管理对共享资源的读写访问。读写锁(Read-Write Lock)允许多个线程同时读取共享资源,但只允许一个线程进行写操作。读写锁可以提高并发性能,适用于读操作频繁、写操作较少的场景。

26. 线程池模式(Thread Pool)

线程池模式是一种并发模式,用于管理和复用线程资源。线程池维护了一组可重用的线程,用于执行提交的任务。通过使用线程池,可以避免频繁创建和销毁线程的开销,提高系统的性能和资源利用率。

27. 生产者消费者模式(Producer-Consumer)

生产者消费者模式是一种并发模式,用于解决生产者和消费者之间的协作问题。生产者负责生成数据,并将数据放入共享的缓冲区,而消费者负责从缓冲区中取出数据并进行处理。生产者和消费者通过共享缓冲区实现异步通信,从而实现解耦和提高系统的吞吐量。

28. 保护性暂停模式(Guarded Suspension)

保护性暂停模式是一种并发模式,用于解决在多线程环境下,等待某个条件满足后再执行操作的问题。在保护性暂停模式中,当条件不满足时,线程会进入等待状态,直到条件满足后再继续执行。这种模式可以避免线程的忙等待,提高系统的效率和资源利用率。

如果想看示例请打开Java种设计模式的28种

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/天景科技苑/article/detail/776128
推荐阅读
相关标签
  

闽ICP备14008679号