1.什么是单列设计模式
1.1形象理解
1 2 3 4 5 6 7
| 典型的单列设计模式的应用
Windows的task manager
各个exe程序要用的时候
直接去调用Task manager的static方法就行
|
1.2Java角度理解
1 2 3 4 5 6 7 8 9
| 1.让一个类只存在一个对象实例
2.类的构造器private化,且只提供一个取得其对象实例的方法
3.在类的内部来创建类的对象,外部无法获得类的对象
4.调用该类的某个静态方法来返回类内部创建的对象
5.类内部的方法和对象都需要静态化
|
1.3优点
1 2 3
| 1.减少了系统性能开销 2.当一个对象需要过多的资源的时候,这个时候就可以提前生产 2.一个单列对象,让它永远驻留在内存中
|
2.两种模式
2.1饿汉式
在程序启动或单件模式类被加载的时候,单件模式实例就已经被创建,空间换时间,不会创建多个对象。
代码实例化:
1 2 3 4 5 6 7 8 9 10 11 12
| public class Hungry { private Hungry(){}
private static Hungry hungry = new Hungry();
public static Hungry getHungry() { return hungry; } }
|
2.2懒汉式
当程序第一次访问单件模式实例时才进行创建,时间换空间,有可能创建多个对象。
代码实例化:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| public void Lazy{ private Lazy(){}
priavte static Lazy lazy = null; public static Lazy getLazy(){ if(lazy == null){ lazy = new Lazy(); } retrn lazy; } }
|
2.3选择对比