java基础之单例设计模式[18]

发布于:2023-01-12 ⋅ 阅读:(404) ⋅ 点赞:(0)

java基础之单例设计模式[18]




一、什么是单例设计模式?

单例设计模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点.

设计思想:

1.构造方法私有化.
2.声明一个静态的本类对象. 3:给外部提供一个静态方法获取对象的实例.

在项目中什么时候要用单例设计模式,有什么好处?
1.在设计工具类的时候(通常工具类只有方法,没有属性);
2.工具类可能被频繁调用时.避免内存消耗;
除了单例设计模式.还可以使用构造方法私有化+静态方法,来实现工具类,比如Math.

二、单例设计模式之饿汉式

 class Singleton1{
//饿汉式:占用内存的时间长,提高效率.在类被加载后,对象被创建,到程序结束后释放.
    private Singleton1(){};
    private static Singleton1 s=new Singleton1();
    public static Singleton1 getInstance(){
        return s;
    }
    public void demo1(){
        System.out.println("饿汉式测试方法");
    }
}

三.单例设计模式之懒汉式

 class Singleton2{
  //懒汉式:占用内存时间短,效率低(懒加载,延迟加载);在第一次调用getInstance()方法时,对象被创建,到程序结束后释放.
    //在多线程时不安全.
    private Singleton2(){};
    private static Singleton2 s2;
    public static Singleton2 getInstance(){
        if (s2==null){
            s2=new Singleton2();
        }
        return s2;
    }
    public void demo2(){
        System.out.println("懒汉式测试方法");
    }
}

四.创建单例设计模式对象

 Singleton1 s=Singleton1.getInstance();
  s.demo1();
  Singleton2 s2=Singleton2.getInstance();
  s2.demo2();

五.小结

本章概述了java中的一种设计模式:单例设计模式, 目的是为了节省重复创建对象所带来的内存消耗,从而提高效率.单例模式只创建一块对象内存,可重复使用,内存地址都相等.
有哪里不足或者有更好的建议,欢迎留言吐槽,有哪里不懂的小伙伴,可以私信我,我会一一答复,感谢认可,感谢支持!

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到