23种经典设计模式详解:创建型、结构型、行为型模式在Java开发中的应用
你好呀,我是猿java。

设计模式在前端开发和后端开发中都很常见,在求职面试中似乎总能看到它的身影。作为 Java 后端人员,能深刻体会到它的重要性。JDK 源码以及 Spring 等流行的开源框架,都离不开设计模式。
今天,我们来分享 23 种经典的设计模式。同时,我们也来探讨一下 JDK 中蕴藏了哪些经典的模式。
设计模式的分类
经典设计模式有 23 种,按照其目的来划分的话,可以分成三类。一类是创建型模式,一类是结构型模式,还有一类是行为型模式。
创建型模式有 5 种,结构型模式有 7 种,行为型模式有 11 种,且对这些设计模式进行了详解,其中包括单例模式。
一个类仅能创建一个实例或者对象。单例模式较为简单,常见的实现方式有 3 种:
饿汉式(Eager Initialization):
在类加载的过程中创建实例,以此来确保在多线程的环境当中能够正常地进行工作。以下是示例代码:
懒汉式(Lazy Initialization):
与饿汉式模式情况相反,懒汉式并非在类加载的时候就创建实例,而是要在首次使用的时候才去创建实例,以下是示例代码:
懒汉式不能确保多线程情况下的线程安全性,通过双重检查的方式来缩小锁的范围并且保障线程安全。
一种在多线程环境中实现延迟初始化的技术,通过两次检查锁的状态来避免不必要的加锁操作,从而提高性能。它先检查对象是否已经初始化,如果没有则加锁进行初始化,初始化完成后再次检查以确保线程安全。这种技术在某些情况下可以提高程序的效率,但也存在一些并发问题需要注意和解决。
枚举
枚举是天然的单例模式,并且这也是 Effective Java 所建议的方式,以下是示例代码:
JDK 源码里的设计模式参考
Java 的核心库中存在 GoF 设计模式的相关例子。
交流学习
最后,将猿哥的座右铭赠予你:投资自己乃是最大的财富。因为自身水平有所局限,倘若文章存在不足之处与错误,欢迎提出批评并予以指正。感谢你将其转发给更多的好友,同时关注我:猿 java,我会为你呈现更多的硬核文章。