深入理解Java的单例模式

简介: 下面是一个单例模式的实现public class Station {        private static Station st=new Station();    private int num=10;    private Station(){            }        pu...
+关注继续查看

下面是一个单例模式的实现
public class Station {
   
    private static Station st=new Station();
    private int num=10;
    private Station(){
       
    }
   
    public static Station getInstance(){
        return st;
    }
   
    public void sell(){
        if (st.num>0) {
            num--;
            System.out.println("有票");
        }else {
            System.out.println("票卖没了");
        }
    }
}


public class Demo {

 

    public static void main(String[] args) {

        Station st=Station.getInstance();
        for (int i = 20; i >0; i--) {
            System.out.print(i+"\t");
            Station.getInstance().sell();
        }
       
    }
}

  单例模式可以理解为是面向对象语言中对全局变量的一种实现,当然的作用不仅仅限于此。我们可以对单例模式实现的过程中的思路进行一下剖析,如此更加清楚的认识到设计模式究竟是什么,当然也可以证明一下基础知识的重要性(基础才是王道)。

  首先我们分析一下单例的意义,在Java中为一个类只能有一个实例化对象。这显然不是我们平常所写的一个普通类所能够做到的事情。那么为了实现这一个要求该如何去做呢。实例化是一个类的初始化时候的问题,而初始化是构造方法去做的事情(当然这里面jvm也帮我们做了很多的事情)。构造方法,我们要设为私有。这样我们让该类不能被随意的初始化,那该在哪初始化,而它有怎样被调用呢。

  一个不能初始化的类,也就是说不能够被实例化的类,我们想要调用。那么无疑让我们想到了static关键字,一个public static 的方法可以实现我们这个要求——即在不实例化类的情况下能够调用其中的方法。于是我们写下了一个public static 的方法,用于得到这个类的唯一实例。而这个实例我们是在类的内部实例,并同样定义为 static 的变量(一直用static 只是为了能够不实例化便可以使用。因为static可以在类初始化的时候便生成了,对于此不理解的同学们可以查看我的前一篇博客。。。)。到这里我们一个单例模式的实现框架其实已经搭好了。

  本文中的例子,sell()方法的使用是为了解决一个具体问题,我在单例框架下扩展而得到的。该例子的背景是有一个售票点,我们要知道自己买票的时候是否能够买到票。显然这是一个可以用单例模式解决的问题。因为全局只能有一个记录票数的变量,因此我们不能够造出多个实例,那样便失去了原有的意义。于是,我们在此加上了机票数的变量num,并假使只剩下十张票。

  然后,我们设立一个售票的方法,如果有票卖便打印出有票同时票的数量减一,否则打印出票卖没了。(简单的判断语句)

目录
相关文章
|
2月前
|
设计模式 安全 Java
JAVA设计模式1:单例模式,确保每个类只能有一个实例
JAVA设计模式1:单例模式,确保每个类只能有一个实例
|
2月前
|
设计模式 存储 安全
【设计模式——学习笔记】23种设计模式——单例模式Singleton(原理讲解+应用场景介绍+案例介绍+Java代码实现)
【设计模式——学习笔记】23种设计模式——单例模式Singleton(原理讲解+应用场景介绍+案例介绍+Java代码实现)
16 0
|
3月前
|
安全 Java
深入理解Java单例模式和优化多线程任务处理
深入理解Java单例模式和优化多线程任务处理
|
3月前
|
安全 Java 开发者
Java单例模式7种写法,你是不是有用错过?
Java单例模式7种写法,你是不是有用错过?
15 0
|
3月前
|
缓存 安全 Java
Java 单例模式讲解和代码示例
Java 单例模式讲解和代码示例
30 0
|
3月前
|
设计模式 安全 Java
Java单例模式
Java单例模式
27 0
|
4月前
|
安全 Java
Java单例模式写法
Java单例模式写法
41 0
|
4月前
|
设计模式 缓存 安全
单例模式【Java设计模式】
单例模式【Java设计模式】
32 0
|
4月前
|
设计模式 存储 安全
Java设计模式:深入探讨饿汉式单例模式
当谈到Java设计模式时,"单例模式"是一个必不可少的主题。在这篇文章中,我们将深入探讨单例模式的一种常见实现方式——"饿汉式"。我们将了解什么是饿汉式单例模式,为什么选择它,以及如何在Java中实现。
53 0
|
4月前
|
设计模式 安全 Java
《Java极简设计模式》第01章:单例模式(Singleton)
介绍创建Java单例对象的七种方式,重点掌握哪些创建方式是线程安全的,哪些方式是线程不安全的,并能够在实际项目中灵活运用设计模式,编写可维护的代码。
101 2
热门文章
最新文章
相关产品
云迁移中心
推荐文章
更多