Java设计模式之单例模式

简介: 当你需要一个类只能创建一个对象的时候,例如数据库连接时,服务端只需要一个连接对象便能处理很多查询工作,如果此时一个连接一个查询势必会造成内存的浪费,造成服务器的卡顿,所以此时就出现了一个需求,怎样让一个类只创建一个对象呢

一、应用背景

当你需要一个类只能创建一个对象的时候,例如数据库连接时,服务端只需要一个连接对象便能处理很多查询工作,如果此时一个连接一个查询势必会造成内存的浪费,造成服务器的卡顿,所以此时就出现了一个需求,怎样让一个类只创建一个对象呢

二、java中实现此模式的特性

首先实现一个类只能创建一个对象,利用到Java里面的static关键字,将对象封装成一个属性,这样就实现了全局只能用一个对象,但有个问题,创建对象的时候会调用一次构造函数,我们只需要创建一个对象,理论上只需要调用一次即可,所以将构造函数私有,利用公有的静态方法返回给我们对象

三、代码及原理部分

public class MyRequest {
    //创建私有构造方法
    private MyRequest(){}
    //创建私有静态对象
    private static MyRequest request;
    //创建公有的方法以获取对象
    public static MyRequest getRequest(){
        //懒汉式加载又称延迟加载机制
        //只有对象调用才创建
        if (request == null){
            request = new MyRequest();
        }
        return request;
    }
}

这边提示一下,kotlin已经将这个单例模式封装成一个关键字了,所以有时候会java和kotlin的混合开发以提高开发效率

object Myrequest{
    //实现与上面一样的效果
}
目录
相关文章
|
8天前
|
设计模式 存储 安全
PHP中的设计模式:单例模式深度解析
在软件开发的广袤天地中,设计模式如同璀璨星辰,指引着程序员们解决复杂问题的方向。其中,单例模式以其独特的魅力,确保了一个类仅有一个实例,并提供了一个访问它的全局访问点,成为众多项目中不可或缺的设计智慧。本文旨在深入探讨PHP中单例模式的实现方式、应用场景及背后的哲理,引导读者思考其在现代软件架构中的重要性与运用策略。
23 5
|
9天前
|
设计模式 存储 缓存
PHP中的设计模式:单例模式的深入解析
在PHP开发中,设计模式是提高代码可维护性、扩展性和重用性的关键技术之一。本文将深入探讨PHP中的单例模式,包括其定义、实现方式、应用场景以及优缺点。通过对单例模式的全面剖析,帮助开发者更好地理解和应用这一设计模式,从而编写出更加高效和优雅的PHP代码。
|
9天前
|
存储 设计模式 安全
Java设计模式-备忘录模式(23)
Java设计模式-备忘录模式(23)
|
9天前
|
设计模式 存储 算法
Java设计模式-命令模式(16)
Java设计模式-命令模式(16)
|
9天前
|
设计模式 Java
Java设计模式-装饰器模式(10)
Java设计模式-装饰器模式(10)
|
9天前
|
设计模式 Java 程序员
Java设计模式-适配器模式(8)
Java设计模式-适配器模式(8)
|
9天前
|
设计模式 安全 Java
设计模式--单例模式Singleton
这篇文章详细介绍了单例模式Singleton的八种实现方式,包括饿汉式(静态常量和静态代码块)、懒汉式(线程不安全和线程安全的同步方法、同步代码块)、双重检查、静态内部类和枚举。每种方式都有详细的代码示例和优缺点说明,帮助理解单例模式的应用和选择适合的实现方法。
设计模式--单例模式Singleton
|
9天前
|
设计模式 存储 缓存
Java设计模式 - 解释器模式(24)
Java设计模式 - 解释器模式(24)
|
9天前
|
设计模式 安全 Java
Java设计模式-迭代器模式(21)
Java设计模式-迭代器模式(21)
|
9天前
|
设计模式 缓存 监控
Java设计模式-责任链模式(17)
Java设计模式-责任链模式(17)
下一篇
无影云桌面