单例模式

现在,你正在王建民的软工课上昏昏欲睡,看着他唾沫星子乱飞,手舞足蹈,而你并没有像你旁边的人一样陷入对web的癫狂状态,只觉得飞舞的口水尤为助眠。

此时,王建民使用他红色的点点笔,狠狠的指向了你,你疾呼曰:“非我困顿也,实乃烈日灼目乎,二睛战战,涕难掩尔,低头之过非我罪也”

建民点头曰:“然,如此拉帘儿,若再视汝低头乎,定斩你头,悬之东门,以戒天下人!” 你二曰:“然!然!岂敢,岂敢。”

于是你为了防止再困便战战兢兢的打开了金铲铲,点击准备,拿到奎桑提和厄斐琉斯,正在准备D瑟提或是永恩,你听到王建民的隆隆之音由远及近,吓得你屁滚尿流,颤颤巍巍的狠狠的退出桌面、锁屏一气呵成。而他只从你的身边经过,继续唾沫星子乱飞,你松下一口气,等到他回到讲台,你再打开手机点击金铲铲,发现商店刷出了瑟提的心之钢赛季之星和永恩,你一脸猥琐的笑容然后换上了五心之钢,哇哈哈哈哈哈,我都替你高兴,五钢,稳啦,都稳啦

但是你突然意识到一个问题,为什么你进入游戏后,继续打开的是那场游戏而不是没开游戏的样子呢?

 


单例模式,就是启动代码,生成的某种类,整个代码的生存周期,只有一次,only one,就像金铲铲中游戏只能有一个在进行。

仔细看,我来介绍这个类的结构,首先是它的属性,Singleton,嘶,为什么Singleton中套着一个Singleton?

我知道你很急,但是你先别急,往下看,Singleton()是它的构造方法,不做赘述,

然后是一个共有方法getInstance,里边有该方法的实现,首先要先看instance是否存在,如果存在就把当前存在的Singleton返回回去,否则的话就新生成一个Singleton,这样可以有效地防止覆盖原来的Singleton。

  • 懒汉
  • 饿汉

这俩不写了,不会考到吧,应该,反正你们记得最后那个getInstance的方法改成

return this.instance
static{
    instance = new Single
}

最后一行代码再加class里边就行了

posted @ 2023-12-20 09:31  子过杨梅  阅读(3)  评论(0编辑  收藏  举报