模式:模式就是解决一类问题的固定步骤。
模式的概念最早起源于建筑行业…
软件行业中有23种设计模式
常用:
单例设计模式
模板设计模式
装饰者设计模式
观察者设计模式
工厂设计模式
单例设计模式:保证一个类在内存中只有一个对象(防止别人new来new去),
实际上就是想防止别人随意new对象,耗费内存空间,但是又不能不提供对象来使用,于是就用这种模式来控制对象的数量。
//饿汉式单例设计模式
class Single{
//1.私有化构造函数数,防止别人new来new去
private Single(){}
//2.声明本类的引用类型变量,并且使用该变量指向本类对象
private static Single s = new Single();
//3. 提供一个公共静态的方法获取本类的对象
public static Single getInstance(){
return s;
}
}
缺点:不用的时候就new了一个对象,可能一直都用不上这个对象。多此一举。
//懒汉式单例设计模式
class Single{
//1.私有化构造函数数,防止别人new来new去
private Single(){}
//2.声明本类的引用类型变量,但是不创建本类对象
private static Single s ;
//3. 提供一个公共静态的方法获取本类的对象,获取之前先判断是否已经创建了本类对象,
// 如果已经创建了,那么直接返回对象即可;如果没有创建对象,那么先创建本类对象再返回。
public static Single getInstance(){
if (s == null){
s = new Single();
}
return s;
}
}
优点:保证了即用即取。
推荐使用: 饿汉单例设计模式,因为懒汉单例设计模式会存在线程安全问题,目前还不能保证一个类在内存中只有一个对象。