设计模式之单例模式(静态属性可称为单例思想的特殊运用?)

本文介绍了设计模式中的单例模式,确保一个类只有一个实例并提供全局访问点。文章讨论了单例模式的定义、使用场景,如限制窗口数量,以及静态属性在其中的特殊应用。接着,通过Java代码展示了单例模式的两种实现方式——饿汉式和懒汉式,分别分析了它们的优缺点。最后,总结了单例模式的核心思想及其在GUI窗口和静态属性中的体现。
摘要由CSDN通过智能技术生成

  最近看了看程杰前辈的《大话设计模式》,主要是上次面试被问设计模式,答的很菜。。。经过一段时间的沉淀,现在来谈谈我对其单例模式的理解。

一、单例模式

1、定义

  单例模式(Singleton),保证一个类仅有一个实例,并且提供全局访问该实例的接口。简单的说,既要保证该类只有一个实例,也要保证全局访问的就是这个唯一的实例

2、使用场景

  那么肯定有小伙伴会问,单例模式有啥使用场景吗?限制一个类只有一个实例,这种场景比较少吧。。。
  确实,限制一个类只有一个实例的场景比较少,但是并不代表单例模式毫无用武之地。举个栗子,运用程序是如何维持某个窗口只一个的?比如系统桌面右键菜单。
在这里插入图片描述
  如果不控制窗口对应的对象同一时刻只有一个,那么可能你每点一次,都会弹出一个同样的窗口。这显然不符合实际逻辑,也会造成资源的浪费。

  其实还有另外一种普遍的场景,类中的静态属性。我想写过面向对象编程序思想的程序小伙伴都在类中定义过static属性,我们把某个变量加上static关键字修饰,目的是把这个变量声明为本身所有,而不是类的实例所有。最主要的作用不就是类的所有实例都来访问这同一个static属性,这正好与我们单例模式的思想吻合。

二、举例(静态属性)

  上面提到了 类中的静态属性是单例模式思想的一种特殊运用,下面我们通过代码来模拟一下。

public class SingleTon {
   
    // 对object属性添加static修饰(这个变量属于SingleTon类,不属于实例)
    public static MyClass object = new MyClass();

    public static void main(String[] args) {
   
        // 新建两个SingleTon对象
        SingleTon singleTonOne = new SingleTon();
        SingleTon singleTonTwo = new SingleTon(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值