首页 > 编程语言 >Java设计模式-懒汉模式

Java设计模式-懒汉模式

时间:2023-09-06 17:32:17浏览次数:39  
标签:Java 创建 LazySingleton 模式 实例 设计模式 懒汉

懒汉模式(Lazy Initialization)是一种创建型设计模式,它用于在需要时才创建对象。这种模式的主要优点是节省资源,因为它只在真正需要对象时才创建实例。在Java中,懒汉模式可以通过使用静态内部类实现。

以下是一个简单的Java懒汉模式示例:


public class LazySingleton {
    // 创建一个静态内部类,用于实现懒汉模式
    private static class SingletonHolder {
    private static final LazySingleton INSTANCE = new LazySingleton();
    }
    // 将构造方法设为私有,防止外部实例化
    private LazySingleton() {
    }

    // 提供一个公共静态方法,用于获取单例对象
    public static LazySingleton getInstance() {
        return SingletonHolder.INSTANCE;
    }
}

在这个示例中,我们创建了一个名为LazySingleton的类。这个类有一个私有构造方法,以防止外部实例化。我们还创建了一个静态内部类SingletonHolder,它将在第一次调用getInstance()方法时实例化LazySingleton对象。这样,我们可以确保LazySingleton对象只在需要时才创建。


标签:Java,创建,LazySingleton,模式,实例,设计模式,懒汉
From: https://blog.51cto.com/u_16155133/7388947

相关文章

  • java 分布式id生成工具类
    importlombok.extern.slf4j.Slf4j;importjava.lang.management.ManagementFactory;importjava.net.InetAddress;importjava.net.NetworkInterface;importjava.net.SocketException;importjava.net.UnknownHostException;importjava.util.concurrent.ThreadLocal......
  • 无涯教程-JavaScript - SECOND函数
    描述SECOND函数返回时间值的秒数。第二个数字以0(零)到59之间的整数形式给出。语法SECOND(serial_number)争论Argument描述Required/OptionalSerial_number您想找到包含秒数的时间。时间可以输入为-引号内的文本字符串(如"6:45PM")十进制数(如0.78125,代表......
  • Java获取请求者的真实ip地址
    在Java中,可以通过HttpServletRequest对象的getRemoteAddr()方法获取请求者的真实IP地址。以下是一个简单的示例:importjavax.servlet.http.HttpServletRequest;publicStringgetRealIpAddress(HttpServletRequestrequest){StringipAddress=request.getHeader("X-Fo......
  • .NET 序列化生成 JavaScriptSerializer Poc
    dot.NET安全矩阵星球群有位师傅问起如何才能生成和ysoserial一样的JavaScriptSerializer序列化poc,同Json.NET一样序列化使用了ObjectDataProvider类,ObjectInstance属性绑定实例化的Process对象,这里没有使用MethodParameters属性传递参数,而是使用ProcessStartInfo类FileName和Argum......
  • Java 与 Jvm
    JVM是跨语言的平台我们平常所说的Java字节码指的是使用Java语言编写的程序,通过Java编译器编译而成的字节码文件,但是,Java虚拟机根本不关心运行在其内部的程序是何种语言编写的,它只关心字节码文件,也就是说Java虚拟机拥有语言无关性,并不会单纯的与Java语言终身绑定......
  • 《Java架构师的第一性原理》65系统架构之架构设计方法论
     4规范(Musthave)规范一:非数据服务做到无状态,避免同一集群内的节点间有功能差异;做到实例可以被随时停止、重启、增加,并且完全不依赖于本地磁盘或者内存规范二:服务具备优雅重启规范三:服务提供的API建议采用http\grpc,json\pb规范,不建议其他自定义格式规范四......
  • 设计模式-建造者模式
    建造者模式是一种创建型的设计模式,将一个对象的创建过程拆分成一个个小的部分,每次决定其中的一个细节,构建出一个复杂对象对象的创建过程被拉长分散,可能会经历一系列的复杂决策,最终才会形成我们需要的对象对象拥有多个参数,或者拥有包含多个参数的构造函数,通过建造......
  • java~掩码的应用
    掩码是一串二进制代码对目标字段进行位与运算掩码掩码通常是一个用于屏蔽或隐藏某些位的值,以便在计算中只关注感兴趣的位。掩码通常是一个由二进制位组成的数,用于按位与操作,以清除或保留某些位的值。常见的用途包括:位操作和位掩码:在计算机编程中,位掩码用于执行位操作,如按位......
  • 结构型设计模式-组合(对象树) Composite
    简介组合模式又叫对象树,将对象按照树形结构串起来,呈现出局部和整体相同的特性。树中每个节点都由两部分组成,首先节点有自己的业务数据,其次节点内可以含有子节点集合。比如盒子中可以放物品,也可以放其他小盒子,小盒子里又可以放物品和其他更小的盒子。当计算盒子的物品价格时,只......
  • JavaScript Date UTC & GMT All In One
    JavaScriptDateUTC&GMTAllInOnejs时期时区转换UTC&GMTCoordinatedUniversalTime/协调世界时UTC是最主要的世界时间标准,其以原子时的秒长为基础,在时刻上尽量接近于格林威治标准时间。UTC实际上与GMT基本相同.https://zh.wikipedia.org/zh-hans/协调世......