单例设计模式

单例模式

简介:

是Java中最简单的一种设计模式,这种设计模式属于创建型设计模式,提供了一种最佳的创建对象的方式.这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建(也就是不能new这个类的对象(需要私有化构造器))

注意:

  1. 这个类只有一个实例
  2. 单例必须自己创建自己的实例
  3. 单例必须给其他对象提供这一个实例

应用:

  1. 一个班级只能有一个班主任
  2. windows是多进程线程的,在操作一个文件的时候,就不可以避免的出现了多个进程同时操作一个文件的现象,所有该文件的处理必须通过唯一的一个实例来进行
  3. 一些设备管理器设计为单例模式,EG:一台电脑连接了两个打印机,在输出的时候不能让两个打印机处理同一个文件

好处:

  1. 在内存中只有一个实例存在,减少了资源的占用,同时减少了内存的开销,尤其是频繁的创建对象和销毁对象
  2. 避免了对资源的多重占用

实现:

image

  1. 创建一个SingleObject类,SingleObject类私有化了它的构造函数和本身的一个静态实例
  2. SingleObject类提供了一个静态的方法,供外界获取它的静态实例

步骤一: SingleObject.java

public class SingleObject {
   //创建 SingleObject 的一个对象
   private static SingleObject instance = new SingleObject();

   //让构造函数为 private,这样该类就不会被实例化
   private SingleObject(){}

   //获取唯一可用的对象
   public static SingleObject getInstance(){
      return instance;
   }

   public void showMessage(){
      System.out.println("Hello Singleton");
   }
}

步骤二:SingletonPatternDemo.java

public class SingletonPatternDemo {
   public static void main(String[] args) {

      //不合法的构造函数
      //编译时错误:构造函数 SingleObject() 是不可见的
      //SingleObject object = new SingleObject();

      //获取唯一可用的对象
      SingleObject object = SingleObject.getInstance();

      //显示消息
      object.showMessage();
   }
}

输出为:Hello Singleton

======未完成=

posted @ 2022-04-20 10:50  1_f  阅读(27)  评论(0)    收藏  举报