JAVA设计模式之三单例模式(Singleton)
2016-06-16 14:09
330 查看
单例模式是用处最多的一种设计模式了,他有如下几个好处:
1.保障jvm中只存在一个实例,避免了频繁创建类,节省开销。
2.调用单例类里的方法不用new,这样也降低了内存开销,同时调用方便。
3.一些只存在一个实例的方法或者对象,在单例模式下才能发挥独特作用,比如一些单例工厂,一些配置文件类的加载,或者一些工具类。
那么,首先我们来实现一个单例类,如下是一种最常见的单例:
[align=left] 之前也看了很多关于单例的博客,里面也写到了要用synchronized锁定对象进行初始化单例,只是个人在实际运用中并没有用到这点罢了,所以在这里就不在累述了。[/align]
同时还有用“影子实例”同步更新单例对象属性。在这里目前也不阐述,根据需求使用吧,因为本人在使用过程中如子饿了一个专门更新属性的方法,更新属性的时候调用一次即可,其作用跟影子实例类似。
总结,设计模式都有他存在的道理,但并不是说一个程序中一定要用到了XX设计模式才是最NB的程序,而是根据实际情况使用,心中无设计模式才而无形中又有设计模式的思想在其中才是最佳的程序,哈哈。
1.保障jvm中只存在一个实例,避免了频繁创建类,节省开销。
2.调用单例类里的方法不用new,这样也降低了内存开销,同时调用方便。
3.一些只存在一个实例的方法或者对象,在单例模式下才能发挥独特作用,比如一些单例工厂,一些配置文件类的加载,或者一些工具类。
那么,首先我们来实现一个单例类,如下是一种最常见的单例:
public class ConfigService { private static ConfigService instance=null; public static ConfigService getInstance(){ if(instance ==null){ instance=new ConfigService(); } return instance ; } /** * 初始化相关信息 */ private ConfigService(){ } }
[align=left] 之前也看了很多关于单例的博客,里面也写到了要用synchronized锁定对象进行初始化单例,只是个人在实际运用中并没有用到这点罢了,所以在这里就不在累述了。[/align]
同时还有用“影子实例”同步更新单例对象属性。在这里目前也不阐述,根据需求使用吧,因为本人在使用过程中如子饿了一个专门更新属性的方法,更新属性的时候调用一次即可,其作用跟影子实例类似。
总结,设计模式都有他存在的道理,但并不是说一个程序中一定要用到了XX设计模式才是最NB的程序,而是根据实际情况使用,心中无设计模式才而无形中又有设计模式的思想在其中才是最佳的程序,哈哈。
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树