设计模式-单例模式

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體:   |    |    |  超大  

单例模式是设计模式中相对简单的一个模式,主要用于保证程序中只存在一个类的实例,所以称为单例。

这一点和枚举类很相似,枚举类是存在有限个数的类的实例,在极端情况下,即枚举的有限个数为1,则就是单例模式。

下面介绍单例的两种方式:

懒汉式:顾名思义,类加载的同时创建类的实例饿汉式:调用方法时才创建实例,存在线程安全的问题。//饿汉式publicclassSingleton {//1.私有化构造函数PRivateSingleton(){

}//2.内部创建实例,并私有化privatestaticSingleton instance =newSingleton();//3.设置get方法,允许外部创建实例,并设置成static,相应的成员变量也声明为staticpublicstaticSingleton getInstance(){returninstance;

}

}

有以下注意点:

构造函数一定是需要private的,如果不,则会暴露给其他对象调用,那就不可能是单例了。实例只能在内部创建需要提供方法,将实例对外暴露,则一定是static,显然这个方法只能是类调用的。//懒汉式

public class Singleton1 {

private Singleton1(){

}

private static Singleton1 instance = null;

public static Singleton1 getInstance(){

// 一般情况下不创建,只有在在调用并且instance为null的情况下才会创建

// 可能会存在线程安全的问题

if(instance == null){

instance = new Singleton1();

}

return instance;

}

}

与饿汉式区别就是实例创建的时机。

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航