版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/boatImpish/article/details/88411210
单例模式
这个应该是最先接触到的设计模式了,很易懂。但是也要能和快的敲出来,对吧!先来一段Singleton代码:
class Singleton {
private static volatile Singleton instance = null; // 加上 volatile 保证即时性,多个线程看到的变量是一样的,就是最新的状态。
private Singleton(){};
public static Singleton getInstance () {
if (instance == null){ // 4, 这是第四步,让锁只走一次
synchronize(Singleton.class){ // 3, 这是第三步,保证只有同时只有一个线程能创建对象,但是还是有一个问题,锁也是一个很重的操作,不能每次获取对象的时候都经过锁这个操作吧,这样太消耗性能了。
if (instance == null) { // 2, 这是第二步,加一个判空防止对象重复创建,尽量减小内存消耗,到现在还没有考虑到多线程的影响
instance = new Singleton(); // 1, 这是第一步,首先得创建一个对象
}
}
}
return instance;
}
}
好了,单例模式写好了,单例模式有很多中写法,这种算是lazy的单例模式了吧,只有在要用到这个单例的时候才会创建。
时刻去思考,理解就会慢慢加深了。低速时空,宇宙,银河系,太阳系,地球,地球自西向东自转,从地球上看太阳东升西落,这就有了东西的概念,之后人自然有了左右方向的概念,面向东方,左手为北,右手为南。中国一年四季有24节气划分,有意思的是,24节气对应24个时间区域,1-24是23个区域,还有一个区域是24-1。然后循环不止。不谈任何高科技的东西,这是一个人生存下去最基础的东西了。多说一点,中华诗歌中对季节景物的描写那是一绝。春晓,还有杜甫的春夜喜雨,都是写雨的佳作。正是应此刻之景。写下这些东西,时时提醒自己,继续进步哈哈