最简单的设计模式
前段时间偶尔去图书馆逛逛,说实在的,信息学部图书馆的环境实在不咋的,不能久坐。
?
《head first 设计模式》看到一半了,研究设计模式是从去北邮时看到那本漫谈设计模式开始的,写代码也是一种境界
?
呀。这本书图与文、理论与生活结合,看起来很轻松惬意,其中单态设计模式最简单了,很少写博客,当然得从简单写起了,
?
纯粹回忆吧。
?
单态,观其名,只能有一个实例。有以下特点:
?
1. 全局访问,实例static化;
?
2. 构造函数私有化,通过Singleton.getInstance()获得实例;
?
3. 不想从一开始就获得实例,可通过判断实例化,空时实例,非空那里用;
?
4. 多线程中注意线程安全,用synchronized加锁;
?
5. 线程安全了,但却性能下降,用volatile和synchronized加双锁;
?
综合以上特点,得以下代码:
?
?
public class Singleton {private volatile static Singleton uniqueInstance; private Singleton() {} public static Singleton getInstance() {if (uniqueInstance == null) {synchronized (Singleton.class) {if (uniqueInstance == null) {uniqueInstance = new Singleton();}}}return uniqueInstance;}}?
?
有适合的问题时,就用此方案解决吧。
?
首次发博,诚邀读者指出不对之处,感激涕流啊。