单例设计模式(Singleton)

    科技2025-01-22  6

    单例设计模式

    所谓单例设计模式,就是采用一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例。如何实现? 饿汉式vs懒汉式 饿汉式: public class SingLetonTest1{ public static void main(){ Bank bank1=Bank.getInstance(); Bank bank2=Bank.getInstance(); System.out.println(bank1==bank2);//结果为true,用的同一个对象 } } //饿汉式 class Bank{ //1.私有化构造器 private Bank(){ } //2.内部创建类的对象 //4.要求此对象也必须声明为静态的 private static Bank instance=new Bank(); //3.提供公共的方法,返回类的对象 public static Bank getInstance(){ return instance; } }

    懒汉式:

    public class SingletonTest2(){ Order order1=Order.getInstance(); Order order2=Order.getInstance(); System.out.println(order1==order2);//true 用的同一个对象 } class Order{ //1.私有化类的构造器 private Order(){ } //2.声明当前类的对象,没有初始化 //4.此对象也必须声明为static private static Order instance=null; //3.声明public、static的返回当前类对象的方法 public static Order getInstance(){ if(instance==null){ instance =new Order(); } return instance; } } 区分饿汉式和懒汉式 饿汉式:坏处:对象加载时间过长 好处:饿汉式是线程安全的 懒汉式:好处:延迟对象的创建 目前写法的坏处:线程不安全>>>>>到多线程内容,再修改应用场景:网站计数器、应用程序的日志应用、数据库连接池、项目中,读取配置文件的类、Application、Windows的Task Manger以及Windows的Recycle Bin
    Processed: 0.011, SQL: 8