java设计模式——单例模式(超详细)
单例设计模式分为二种:饿汉式和懒汉式单例设计模式的优点:由于单例模式只生成一个实例,减少了系统性能开销,当一个对象的产生需要比较多的资源时,如读取配置、产生其他依赖对象时,则可以通过在应用启动时直接产生一个单例对象,然后永久驻留内存的方式来解决单例设计模式的设计思想:所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法
单例设计模式分为二种:饿汉式和懒汉式
单例设计模式的优点:
由于单例模式只生成一个实例,减少了系统性能开销,当一个对象的
产生需要比较多的资源时,如读取配置、产生其他依赖对象时,则可
以通过在应用启动时直接产生一个单例对象,然后永久驻留内存的方
式来解决
单例设计模式的设计思想:
所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对
某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法。
如果我们要让类在一个虚拟机中只能产生一个对象,我们首先必须将类的构
造器的访问权限设置为private,这样,就不能用new操作符在类的外部产生
类的对象了,但在类内部仍可以产生该类的对象。因为在类的外部开始还无
法得到类的对象,只能调用该类的某个静态方法以返回类内部创建的对象,
静态方法只能访问类中的静态成员变量,所以,指向类内部产生的该类对象
的变量也必须定义成静态的。
一.饿汉式
class one{
}
1.私有化类的构造器
private one(){
}
2.内部创建类对象(静态)
private static one ist = new one();
3.提供公共的静态方法,返回类的对象
public static one getinstance(){
return ist;
}
二.懒汉式
1.私有化类的构造器
private two(){
}
2.声明当前类的对象,不初始化
private static two ist=null;
3.声明public,static的返回当前类对象的方法
public static two getin(){
if(ist==null){
ist=new two();}
return ist;
}
应用场景:
1.网站的计数器
2.应用程序的日志应用
3.数据库连接池
4.读取配置文件中的类
5.application
6.pask manager
7.recycle bin
更多推荐
所有评论(0)