单例模式
现在,你正在王建民的软工课上昏昏欲睡,看着他唾沫星子乱飞,手舞足蹈,而你并没有像你旁边的人一样陷入对web的癫狂状态,只觉得飞舞的口水尤为助眠。
此时,王建民使用他红色的点点笔,狠狠的指向了你,你疾呼曰:“非我困顿也,实乃烈日灼目乎,二睛战战,涕难掩尔,低头之过非我罪也”
建民点头曰:“然,如此拉帘儿,若再视汝低头乎,定斩你头,悬之东门,以戒天下人!” 你二曰:“然!然!岂敢,岂敢。”
于是你为了防止再困便战战兢兢的打开了金铲铲,点击准备,拿到奎桑提和厄斐琉斯,正在准备D瑟提或是永恩,你听到王建民的隆隆之音由远及近,吓得你屁滚尿流,颤颤巍巍的狠狠的退出桌面、锁屏一气呵成。而他只从你的身边经过,继续唾沫星子乱飞,你松下一口气,等到他回到讲台,你再打开手机点击金铲铲,发现商店刷出了瑟提的心之钢赛季之星和永恩,你一脸猥琐的笑容然后换上了五心之钢,哇哈哈哈哈哈,我都替你高兴,五钢,稳啦,都稳啦
但是你突然意识到一个问题,为什么你进入游戏后,继续打开的是那场游戏而不是没开游戏的样子呢?
单例模式,就是启动代码,生成的某种类,整个代码的生存周期,只有一次,only one,就像金铲铲中游戏只能有一个在进行。
仔细看,我来介绍这个类的结构,首先是它的属性,Singleton,嘶,为什么Singleton中套着一个Singleton?
我知道你很急,但是你先别急,往下看,Singleton()是它的构造方法,不做赘述,
然后是一个共有方法getInstance,里边有该方法的实现,首先要先看instance是否存在,如果存在就把当前存在的Singleton返回回去,否则的话就新生成一个Singleton,这样可以有效地防止覆盖原来的Singleton。
- 懒汉
- 饿汉
这俩不写了,不会考到吧,应该,反正你们记得最后那个getInstance的方法改成
return this.instance
static{ instance = new Single }
最后一行代码再加class里边就行了