00:00
那么我们再来看一下单利模式在我们JDK里面有没有使用到呢?实际上是使用过的同学们看,在JDK里面有一个run,就是Java那里面一个runtime runtime它就是一个经典的单利模式,我们来简单看一下它是一个什么样的形式啊,来走一个,呃,我们在这写一段代码吧,叫test的代码。给大家。追下圆满。做一下源码。哪一个呢,有个run time。Wrong time。Run time。好,Runtime呢,我们追进去看一下这个类它是怎么实现的,追进去。好,我要关联一下源码。我要关联一下源码,我的源码呢。在哪哈?我我找一下我的源码在哪个位置。源码在哪个位置?好,我诶,我在我在外部吧,在外部文件有一个源码,我们搜一下。
01:01
在D盘里面我装了一个JDK。是吧,这有个JDK进到这个JDK里面去,有源码在这。是这个吧,好打开这就可以了。好,我们看一下。在这个runtime里面呢,同学们可以看到它这有一个静态的,静态的一个属性叫current run time上来给我就六了一个对吧,然后呢,他在这里提供了一个静态的方法叫get runtime。那runtime这边它只有把。事先创建好的run time这个对象实例直接返回了,而且它的构造方法,同学们看到也是一个私有化的。所以大家有没有看出来,Runtime它其实用的是我们单利模式的哪一种写法?实际上就是鄂汉室。就上来过后我先创建起来,这样呢。它就能够避免这个多线程的问题,而且大家知道在我们这一个Java里面,肯定我们会用到runtime的,因此它也不会有浪费,所以说这种方式呢,既简单也是可以用的啊,没有问题,所以说runtime呢,就是一个经典的单利模式的一个使用好的就这个。
02:15
那现在呢?我们把单利模式的一个注意事项给同学们聊一聊,单利模式需要同学们注意的是哪里呢?单利模式保证的系统内存中该类只有一个对象,节省的系统资源,对于一些需要频繁创建和销毁的对象,用单利模式可以提高性能。就是在这种情况下,我们可以选用单利模式。第二个。如果我们想实例化,一个单例类似,必须要记住。使用相应的获取对象的方法,而不是六,就是我们用方法来获取,而不是六一个对象。单利模式使用的场景有这么几个,需要频繁的创建和销毁的对象,还有创建的对象是消耗时过多,或者是耗费资源比较大的呢?像这种重量级的对象,我们也考虑用单利模式。
03:04
还有一种情况就是经常用到。经常用到啊,就是这种重量就经常用到,还有就是经常用到的对象,工具类对象频繁仿制,导致数据或文频繁访问数据库或文件的,这种对象也可以使用单列模式,比如说我有一个工具类。这个工具类呢,在整个这个系统里面,其实要一份就可以了。对吧,还有一种就是数据源筛选工厂,我们也可以考虑使用单利模式,这样提高我们整个系统的一个性能。所以在这个层面上呢,我们推荐大家使用单利模式,单立模式,我们刚才讲的二汉静态。累不累,还有松痛检查,还有枚举,都是OK的。好,同学们,那关于单利模式在JDK源码里面的分析呢,就先给大家说到这里,呃,因为这个比较简单哈,因为单利模式其实是比较简单的一种方式,所以大家听起来应该没有压力,很简单这个玩意儿。
04:01
对,只是讲到后面我们讲到桥接或者是观察者模式,呃,这个时候就相对难度要大一点,所以我们现在现在先讲的是一个比较简单的单利模式,希望大家能够跟上老师思路。
我来说两句