单例设计模式

单例设计模式:

(1)饿汉式:

实现步骤:

① 私有化类的构造器;

② 内部创建类的对象;

③ 提供公共的静态方法,返回类的对象;

④ 要求此对象也必须声明为静态的。

例如:

class Bank{

  //私有化类的构造器
  private Bank(){} 

  //内部创建类的对象,要求此对象也必须声明为静态的
  private static Bank instance = new Bank();

  //提供公共的静态方法,返回类的对象
  public static Bank getInstance(){
     return instance;
  }
}

(2)懒汉式:

实现步骤:

① 私有化类的构造器;

② 声明当前类的对象,不初始化;

③ 提供公共的静态方法,返回类的对象;

④ 要求此对象也必须声明为静态的。

例如:

class Bank{

  //私有化类的构造器
  private Bank(){} 

  //声明当前类的对象,不初始化,要求此对象也必须声明为静态的
  private static Bank instance = null;

  //提供公共的静态方法,返回类的对象
  public static Bank getInstance(){

    if(instance == null){

        instance = new Bank();
     }
     return instance;
  }
}

(3)饿汉式和懒汉式的区别:

饿汉式:

优点:线程安全。

缺点:对象加载时间过长。

懒汉式:

优点:延迟对象的创建。

缺点:线程不安全。

(4)应用场景:网站的计数器、应用程序的日志应用、数据库连接池、项目中读取配置文件的类、Application、Windows中的任务管理器、Windows的回收站等。

posted @ 2022-06-22 20:09  萧若風  阅读(17)  评论(0)    收藏  举报