JAVA设计模式-单例模式
来源:互联网 发布:java订阅发布模式 编辑:程序博客网 时间:2024/05/19 09:40
一、单例模式简介
单例模式,是一种软件设计中常用的一种设计模式,主要是用来控制系统中的某一个具体类只有有一个实例存在。
有时候我们需要确保整个系统中的某个类只有一个实例存在,这样便于我们协调系统中的行为。例如,我们要在某个系统中使用发送短信的服务,那么、
我们希望单一的短信发送类实例,而不是由多个对象来共同实现短信的发送服务,这时候我们可以通过单例模式来实现。
二、单例模式实现方式
1、内部实现-内部空间就是类的内部初始化单例对象的实例,如果是第一次访问则创建,反之则不创建,直接拿来用就好了,目前使用的单例模式都是通过内部实现的。
/** * 单例模式内部实现方式 * @author 张天柱 * @version 1.1 **/public class Instance1 {/*声明一个内部私有化对象*/private static Instance1 instance1 = null;/*私有构造方法,防止被实例化*/private Instance1(){}/*静态工程方法,创建实例*/public static Instance1 getInstance1(){if(instance1 == null){instance1 = new Instance1();}return instance1;}/*如果该对象被序列化,该方法可以保证对象在序列化前后保持一致*/public Object readResolve(){return instance1;}}
这个类基本上可以满足要求,但是在毫无线程安全的情况下,把它放入到多线程的环境中,肯定会出错,如何解决,我们首先会想到在getInstance1()方法加入关键字synchronized,但是这种方法在每次获取对象时,都会讲该方法锁住,在性能上会有所降低。所以我们可以判断如果对象为空,我们再将该方法锁定,这样会在很大程度上提高性能..
/*静态工程方法,创建实例*/public static Instance1 getInstance1(){if(instance1 == null){synchronized (instance1) {instance1 = new Instance1();}}return instance1;}
通过对单例模式的学习告诉我们:
1、单例模式虽然理解起来很简单,但是在实施起来还是有一定的难度的
2、synchronized关键字一定要慎用
3、单例模式可以用到某些具体的场合,如全局发送消息等场合。
0 0
- java 设计模式,单例设计模式
- java设计模式-单例设计模式
- java设计模式-单例设计模式
- Java设计模式 单例设计模式
- Java设计模式------单例设计模式
- java设计模式----->单例设计模式
- java设计模式:单例设计模式
- java设计模式-----单例设计模式
- Java设计模式----单例设计模式
- java设计模式-单例设计模式
- java设计模式:单例设计模式
- java 设计模式-单例设计模式
- Java设计模式--单例设计模式
- java设计模式---单例设计模式
- Java设计模式-单例设计模式
- JAVA设计模式:单例设计模式
- java-单例设计模式
- Java设计|单例模式
- 我为什么要学习Linux?
- 用Eclipse开源IDE+gcc编译器开始嵌入式编程
- lesson_1
- 第三十二天【java虐我千百遍,我待java如初恋】
- 蟠桃记
- JAVA设计模式-单例模式
- 青年歌手大奖赛_评委会打分
- 客户端-JSON解析,反解析
- cenos6.4u盘启动安装盘
- 避免死锁之银行家算法
- UML和模式应用(原书第3版)的评论-来自: 疯狂的菠菜
- (二)安装fedore 20(Gnome) 常用软件
- Linux内核网络子系统数据发送模块分析(MAC802.11-OpenWRT)
- 结合百度云平台和微信公众平台开发(二)