什么是单例模式?

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

单例模式的定义:一个类就有一个实例对象,而且自行实例化,并向整个系统提供这个实例。

单例模式根据实例化对象的时机不同分为两种:饿汉式单例、懒汉式单例。

饿汉式单例:

public class Singleon{PRivate static Singleon singleon = new Singleon();

private Singleon(){}

pulic static Singleon getInstance(){

return singleon;

}

}

懒汉式单例:

public class Singleon{

private static Singleon singleon = null;

private Singleon(){}

public static synchronized Singleon getInstance(){ //加上synchronized 纯粹就是为了线程安全,这里我就不多说了,自己接触的不多,没有发言权

if(singleon==null){

singleon = new Singleon();

}

return singleon;

}

}

两者的功能是一样的,只是实例化对象的时机不一样,饿汉式单例,实在类被加载的时候实例化对象;懒汉式单例,是在调用方法的时候创建实例化对象;

单例模式的优点:

1、在内存中,只有一个对象,节省内存空间

2、避免频繁的创建销毁对象,可以提高性能

3、避免对共享资源的多重利用

4、可以全局访问

单例模式的使用场景:

1、需要频繁实例化然后销毁的对象

2、创建对象时耗时过多或者耗资源过多,但又经常用到的对象

3、用作工具类对象

4、频繁访问数据库或者文件的对象

5、还有其它的吧,应该,我还没用到的场合。。。。。。。

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