标签:
创建型:Singleton(单例模式)
单例模式,或者称为元件模式。一般来说,在所有模式中,属于最小代码实现的翘楚。刚找工作那会,经常在笔试题遇到写出你知道的设计模式,基本上单例是必写的,不为啥,至少占地面积小。
一般我们有这两种实现:
package top.gabin.oa.web.design.singleton; /** * 简单单例模式示例 * @author linjiabin on 16/5/4 */ public class SimpleSingleton { private static Object singleton = new Object(); private static Object singleton2; public static Object getSingleton() { return singleton; } public static Object getSingleton2() { if (singleton2 == null) { singleton2 = new Object(); } return singleton2; } }
静态变量在整个应用中只会持有一份对象,而全局访问点也只有一个,这就是我们一般定义的单例了:保证只有一个对象,一般也只有一个全局访问点。至于初始化的时间,要看创建对象的资源损耗和使用频率。一般使用频率高,损耗低的会直接初始化。
当然看起来简单的东西并不见得容易维护,其实单例模式往往还要解决并发访问的问题,这不在讨论范围,并且我也对并发没有那么深的见解。
标签:
原文地址:http://www.cnblogs.com/gabin/p/5457122.html