笔记整理之设计模式 I

来源:互联网 发布:水晶机巧矩阵黄晶 编辑:程序博客网 时间:2024/06/05 16:36

设计模式 I 之 单例模式(Singleton)

单例模式是所有设计模式中最简单暴力的模式,没有之一。

单例模式的特点:

1. 单例类仅有一个实例

2. 单例类自行实例化

3. 单例类向外提供唯一的访问接口


据于单例模式的上述特点,单例类适用于以下场景或者有益于解决以下问题:

1. 对于创建频繁且类的定义庞大繁杂的对象,频繁的实例化开销太大,可以考虑单例设计,减少JVM内存调用频次 和 GC的压力。

2. 对于功能单一且需要对资源集中管控,或者需要唯一约束和管控的对象。譬如计算机的资源管理器,打印接口,系统的核心流程管控等。


单例模式的实现:

实现[1]:

public class Singleton{

private Singleton(){

};

public static Singleton self = null;

public static Singleton singletonInstance() {

if(self == null) {

Singleton singleInstance = new Singleton();

}

return singleInstance;
}

}


实现[2]:

public class Singleton{

private Singleton(){

};

private final static Singleton singleInstance = new Singleton();

public static Singleton singletonInstance () {

return singleInstance;

}

}

实现[3]:线程安全的单例,通过利用JVM类加载过程线程互斥的特性实现。

public class Singleton{

private Singleton() {

};

private static class singletonFactory() {

private static Singleton singletonInstance = new Singleton();

}

public static Singleton instance(){

return singletonFactory.singletonInstance;
}

}

1 0
原创粉丝点击