单例模式

本文深入解析单例模式的核心概念及其应用价值,通过对比饿汉式与懒汉式实例,揭示单例模式在系统资源管理与用户体验提升上的作用。文章详细阐述了单例模式的实现要点,并提供了具体代码示例,帮助读者理解如何在实际项目中灵活运用这一设计模式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

      故名思议,单例模式就是单个实例,那么单个实例有什么好处?又为什么要用到单例呢?

       在有的业务操作上,如一个系统中可以存在多个打印任务,但是只能有一个正在工作的任务;一个系统只能有一个窗口管理器或文件系统;一个系统只能有一个计时工具或ID(序号)生成器。如在Windows中就只能打开一个任务管理器。如果不使用机制对窗口对象进行唯一化,将弹出多个窗口,如果这些窗口显示的内容完全一致,则是重复对象,浪费内存资源;如果这些窗口显示的内容不一致,则意味着在某一瞬间系统有多个状态,与实际不符,也会给用户带来误解,不知道哪一个才是真实的状态。这时使用单例模式的话既可以减少资源浪费,又可以提高客户体验,所以有时有的单例模式是需要的。下面我们来看下两种单例模式的例子,分别为饿汉式懒汉式,还有其他的单例模式,当然都是在这两个的基础上改造的。

       显然单例模式的要点有三个;一是某个类只能有一个实例二是它必须自行创建这个实例三是它必须自行向整个系统提供这个实例

       从具体实现角度来说,就是以下三点:一是单例模式的类只提供私有的构造函数,二是类定义中含有一个该类的静态私有对象,三是该类提供了一个静态的共有的函数用于创建或获取它本身的静态私有对象。

      饿汉式:

public class Singleton{

private static Singleton singleton=new Singleton();     //类的静态私有对象

private Singleton(){}                                                     //私有的构造方法

public static getInstance(){                                      //静态的公有的函数

   return  singleton;

}

}


懒汉式:

public  class  Singleton{

private static Singleton singleton;

private   Singleton(){}

public static synchronized Singleton getInstance(){

if(singleton==null){

singleton =new Singleton();

}

return singleton;

}

}

饿汉式:顾名思义,就是很饥饿的意思,就是无论你要不要用这个例子,我就首先先给你创建出来,不管你要不要。

懒汉式:就是一开始先假设你不用,所以我就不创建,只是定义一个成员变量。当你要创建时,我再判断你是不是没有,没有的话就给你创建一个。这样的人就是能不做就不做,故称懒汉模式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值