单例模式
2016-05-04 07:46
288 查看
[b]创建型:Singleton(单例模式)[/b]
单例模式,或者称为元件模式。一般来说,在所有模式中,属于最小代码实现的翘楚。刚找工作那会,经常在笔试题遇到写出你知道的设计模式,基本上单例是必写的,不为啥,至少占地面积小。
一般我们有这两种实现:
静态变量在整个应用中只会持有一份对象,而全局访问点也只有一个,这就是我们一般定义的单例了:保证只有一个对象,一般也只有一个全局访问点。至于初始化的时间,要看创建对象的资源损耗和使用频率。一般使用频率高,损耗低的会直接初始化。
当然看起来简单的东西并不见得容易维护,其实单例模式往往还要解决并发访问的问题,这不在讨论范围,并且我也对并发没有那么深的见解。
单例模式,或者称为元件模式。一般来说,在所有模式中,属于最小代码实现的翘楚。刚找工作那会,经常在笔试题遇到写出你知道的设计模式,基本上单例是必写的,不为啥,至少占地面积小。
一般我们有这两种实现:
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; } }
静态变量在整个应用中只会持有一份对象,而全局访问点也只有一个,这就是我们一般定义的单例了:保证只有一个对象,一般也只有一个全局访问点。至于初始化的时间,要看创建对象的资源损耗和使用频率。一般使用频率高,损耗低的会直接初始化。
当然看起来简单的东西并不见得容易维护,其实单例模式往往还要解决并发访问的问题,这不在讨论范围,并且我也对并发没有那么深的见解。
相关文章推荐
- Parameter和Attribute的区别
- JVM
- 仿QQ获取手机中的APK并分享
- ReentrantLock实现原理分析
- java的Arrays类的应用
- synchronized 实现原理分析
- LeetCode 289. Game of Life
- 【BZOJ1433】【codevs2347】假期的宿舍,最大流
- 集合与数组之间的转化
- swift post json and header
- 【Baltic2014】【BZOJ3917】Sequence
- 机械大楼电梯控制项目软件 -- 硬件相关变量定义
- Tomcat热部署方法(3种)
- LeetCode 203. Remove Linked List Elements(删除链表元素)
- OSChina 周三乱弹 ——所有树都绿了,却不知道谁干的!
- 如何将Tomcat加入到系统服务里面
- gcc入门
- Android中的ClassLoader与dex文件加密实现分析
- 实现CSS等分布局的5种方式
- 字符串相等判断