-------
一、什么是设计模式
设计模式是解决某类问题行之有效的思考方式 ,是规律,是在不断的劳动中总结出来的经验
二、单例设计模式
1、它到底解决什么问题保证一个类在内存中的对象唯一性
应用场景:比如多程序使用同一个配置文件,那就需要该配置文件保证对象唯 一
如何保证对象的唯一性呢??
由其他程序创建该类对象,无法进行控制,所以必须不让其他程序创建该类对象
为了让其他程序还可以有对象使用,在该类中自定义一个本类对象
对外提供一个可以访问到这个对象的方法即可
步骤
1、可以将该类的构造函数私有化
2、在本类中创建一个本类对象
3、对外提供一个公共方法返回该对象
成员变量一般都要私有化
饿汉式:就是先将对象初始化,在single 类一进内存,就已经建立对象
class Single()
{
private Single(){} //私有化构造函数
private static Single s=new Single();
public static single getInstance()
{
return s; //定义 方法返回S 是让这个S在可控
}
}
饿汉式会先初始化对象,在Single类一进内存时,就已经建立了对象
例:
class Person
{
private Person(){}
private static Person p=new Person();
public static Person getInstance()
{
return p;
}
}
如果在设计程序过程中,发现要让这个程序保证数据的唯一性,就可以通过单例设计模式来进行
懒汉式
class Single
{
private static Single s=null;
private Single(){} //让对象不可以初始化
public static Single getInstance()
{
if(s==null)
{
s=new Single();
]
return s;
}
}
懒汉式:是方法被调用时才对对象初始化,也叫做对象的延时加载
Single类进内存时,对象还没有存在,只有调用了getInstance()方法时,才建立对象
懒汉式在多线程中会出不安全