21xrx.com
2024-11-05 19:40:38 Tuesday
登录
文章检索 我的文章 写文章
《Java设计模式课程设计——实现一个简单的单例模式》
2023-06-17 05:34:27 深夜i     --     --
Java 设计模式 单例模式

在Java开发中,设计模式是必不可少的一部分。其中,单例模式是最为常用的设计模式之一。本篇文章将介绍如何实现一个简单的单例模式,并提供相应的代码案例。

首先,我们需要定义一个类,用来保存单例对象。为了确保该对象仅被创建一次,我们需要对构造方法进行私有化,并设立一个静态方法用来获取该单例对象。


public class SimpleSingleton {

  private static SimpleSingleton instance = null;

  private SimpleSingleton() 确保该对象仅被创建一次

  

  public static SimpleSingleton getInstance() {

    if (instance == null) {

      instance = new SimpleSingleton();

    }

    return instance;

  }

}

这里需要注意的是,单例对象必须被声明为静态变量,以确保该对象无论被多少个实例对象所调用,都只会被创建一次。

下面,我们来测试一下该单例模式是否真正起到了单例模式的作用。我们可以创建两个线程分别来获取SimpleSingleton的实例,看是否会出现多个实例被创建的情况。


public class TestSimpleSingleton {

  public static void main(String[] args) {

    Thread thread1 = new Thread(new MyRunnable());

    Thread thread2 = new Thread(new MyRunnable());

    thread1.start();

    thread2.start();

  }

  static class MyRunnable implements Runnable {

    @Override

    public void run() {

      SimpleSingleton singleton = SimpleSingleton.getInstance();

      System.out.println("Current Thread: " + Thread.currentThread().getName()

        + ", Singleton Object: " + singleton.hashCode());

    }

  }

}

运行代码后,我们可以看到输出结果为:


Current Thread: Thread-0, Singleton Object: 1627674074

Current Thread: Thread-1, Singleton Object: 1627674074

由此可见,无论是哪个线程在调用SimpleSingleton的getInstance方法,都是获取到了相同的对象实例。因此,该单例模式已经成功地实现了单例的效果。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复