黑马程序员技术交流社区
标题:
【分享】23种设计模式 (创建型模式) (一) 单例模式
[打印本页]
作者:
jtshawn
时间:
2014-9-21 12:24
标题:
【分享】23种设计模式 (创建型模式) (一) 单例模式
本帖最后由 jtshawn 于 2014-9-21 12:51 编辑
单例模式定义:确保一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。
单例模式应该是23中设计模式中最简单的一种模式了。它有一下几个要素:
1.私有的构造方法。
2.指向自己实例的私有静态引用。
3.以自己实例为返回值的静态的公有的方法。
单例模式根据实例化对象时机的不同分为两种:饿汉式与懒汉式。饿汉式单例在类被加载的时候,就实例化一个对象交给自己的引用;而懒汉式在调用取得实例方法时才会实例化对象。
代码如下:
饿汉式
public class Singleton{
private static Singleton singleton = new Singleton(); //创建本类对象,并私有化。
private Singleton(){} //私有化构造函数,让外部不能访问。
public static Singleton getInstance(){ //对外提供方法获得本类对象。
return singleton;
}
}
复制代码
懒汉式
public class Singleton{
private static Singleton singleton;
private Singleton(){}
public static Singleton getInstance(){ //当方法被调用时才创建对象。
if(singleton == null)
{
singleton = new Singleton();
}
return singleton;
}
}
复制代码
单例模式的优点:
1.在内存中只有一个对象,节省内存空间。
2.避免频繁的创建销毁对象,可以提高性能。
3.避免对共享资源的多重占用。
4.可以全局访问。
应用场景:
1.需要频繁实例化然后销毁的对象。
2.创建对象时耗时过多或者耗资源过多,但是又经常用到的对象。
3.有状态的工具类对象。
4.频繁访问数据库或文件的对象。
5.以及其他所有要求只有一个对象的场景。
今后会陆续介绍余下的其他模式,和大家一起分享。纯手打,不足之处希望大家多多包涵。
作者:
jtshawn
时间:
2014-9-24 19:31
沙发!!
作者:
Beka
时间:
2014-9-24 23:27
楼主用心了!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2