标签:style blog http ar color os sp on div
个人blog 此篇博文地址:http://www.sanyinchenblog.com/?p=233
单例模式:
确保一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。
demo(https://github.com/sanyinchen/UMLDemo)
通用视图(饿汉式):
单例通用代码模板:
public class Singleton{ private static final Singleton singleton=new Singleton(); private Singleton() { } public static Singleton getSingleton() { return singleton; } public static void soSomthing() { } }
书中举了一个臣子朝拜皇上的例子:皇帝每天要上朝接待臣子,处理政务,臣子每天要叩拜皇上。而皇帝就那个唯一的单例。
Minister类:
package com.sanyinchen.singleon; public class Emperor { private static Emperor emperor = null; private Emperor() { } public synchronized static Emperor getInstance() { if (emperor == null) { emperor = new Emperor(); } return emperor; } public void say() { System.out.println("我就是皇帝啦啦啦...."); } }Emperor类:
package com.sanyinchen.singleon; public class Emperor { private static Emperor emperor = null; private Emperor() { } public synchronized static Emperor getInstance() { if (emperor == null) { emperor = new Emperor(); } return emperor; } public void say() { System.out.println("我就是皇帝啦啦啦...."); } }运行结果:
我就是皇帝啦啦啦.... 我就是皇帝啦啦啦.... 我就是皇帝啦啦啦.... 我就是皇帝啦啦啦.... 我就是皇帝啦啦啦.... 我就是皇帝啦啦啦.... 我就是皇帝啦啦啦.... 我就是皇帝啦啦啦.... 我就是皇帝啦啦啦.... 我就是皇帝啦啦啦....上面的单例模式为懒汉式,还有一种懒汉式,则是在定义的时候直接进行初始化,返回时直接返回此对象。
单例模式的优点:
(1)减少内存开支
(2)减少系统性能开销
(3)避免对资源的多重占用
(4)优化和共享资源
单例模式的缺点:
(1)单例模式一般没有接口,扩展很难
(2)单例模式对策是不利
(3) 单例模式与单一职责原则有冲突
标签:style blog http ar color os sp on div
原文地址:http://blog.csdn.net/lovechangshu/article/details/41488269