反射与单例设计模式|学习笔记

简介: 快速学习反射与单例设计模式

开发者学堂课程【Java 高级编程反射与单例设计模式】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/20/detail/379


反射与单例设计模式


内容简介:

1、范例:观察懒汉式单例设计模武的问题.

2、修改 getInstance() 方法进行同步处理

3、在 Java 中使用到单例设计模式


1.观察懒汉式单例设计模武的问题.

单例设计模式的核心本质在于:

类内部的构造方法私有化,在类的外部产生类产生实例化对象之后通过 static 方法获取实例化对性行类中的结构调用,单例设计模式一共有两类:懒汉式、饿汉式。

范例:图片13.png


2.修改 getInstance() 方法进行同步处理

单例设计模式的最大特点是在整体的运行过程之中只允许产生一个实例化对象,当有了若干线程之后当前的程序就可以产生多个实例化对象,、此时就不是单例设计模式。

问题造成的关键在于代码本身出现了不同步的情况,而要想解决的关键核心在于需要进行同步处理,使用 synchronized 类

范例:图片14.png

此时同步效率低,因为整体代码里实际只有一部分进行同步处理, instance 对象的实例化处理部分

范例:更合理的同步处理

图片15.png


3.在 Java 中使用到单例设计模式

 Runtime 类 Class 类、Pattern 类、Spring 框架

相关文章
|
17天前
|
设计模式 前端开发 JavaScript
JavaScript设计模式及其在实战中的应用,涵盖单例、工厂、观察者、装饰器和策略模式
本文深入探讨了JavaScript设计模式及其在实战中的应用,涵盖单例、工厂、观察者、装饰器和策略模式,结合电商网站案例,展示了设计模式如何提升代码的可维护性、扩展性和可读性,强调了其在前端开发中的重要性。
22 2
|
6月前
|
设计模式 SQL 安全
【设计模式】第二篇:单例模式的几种实现And反射对其的破坏
一个普通实例化,一个反射实例化 但是我们如果通过反射的方式进行实例化类,会有什么问题呢? public static void main(String[] args) throws Exception { Lazy1 lazy1 = getLazy1();
39 5
|
2月前
|
设计模式 Java Kotlin
Kotlin学习笔记 - 改良设计模式 - 迭代器模式
Kotlin学习笔记 - 改良设计模式 - 迭代器模式
29 2
|
3月前
|
设计模式 存储 安全
设计模式——设计模式介绍和单例设计模式
饿汉式(静态常量)、饿汉式(静态代码块)、懒汉式(线程不安全)、懒汉式(线程安全,同步方法)、懒汉式(线程不安全,同步代码块)、双重检查(推荐,线程安全、懒加载)、静态内部类(推荐)、枚举(推荐)
设计模式——设计模式介绍和单例设计模式
|
2月前
|
设计模式 JavaScript Scala
Kotlin学习笔记 - 改良设计模式 - 责任链模式
Kotlin学习笔记 - 改良设计模式 - 责任链模式
44 0
|
2月前
|
设计模式 Java Kotlin
Kotlin 学习笔记- 改良设计模式 - 装饰者模式
Kotlin 学习笔记- 改良设计模式 - 装饰者模式
27 0
|
4月前
|
设计模式 JavaScript 前端开发
从工厂到单例再到策略:Vue.js高效应用JavaScript设计模式
【8月更文挑战第30天】在现代Web开发中,结合使用JavaScript设计模式与框架如Vue.js能显著提升代码质量和项目的可维护性。本文探讨了常见JavaScript设计模式及其在Vue.js中的应用。通过具体示例介绍了工厂模式、单例模式和策略模式的应用场景及其实现方法。例如,工厂模式通过`NavFactory`根据用户角色动态创建不同的导航栏组件;单例模式则通过全局事件总线`eventBus`实现跨组件通信;策略模式用于处理不同的表单验证规则。这些设计模式的应用不仅提高了代码的复用性和灵活性,还增强了Vue应用的整体质量。
60 1
|
4月前
|
设计模式 Java
【Java】单例设计模式
【Java】单例设计模式
|
5月前
|
设计模式 Java
Head First设计模式学习笔记
Head First设计模式学习笔记
|
6月前
|
设计模式 Java 编译器
设计模式——创建型模式(工厂,简单工厂,单例,建造者,原型)
设计模式——创建型模式(工厂,简单工厂,单例,建造者,原型)