设计模式是软件工程方法迭代多年的研究成果,java中常用设计模式主要包含23中,包括:单例,观察者,适配器,工厂方法,抽象工厂,代理模式,装饰模式,模板方法等。
单例模式
单例模式是一种开发中非常常见模式,指的是在程序运行中对象的获取永远是同一个,比如说一些资源池(常量池,连接池,线程池)一般都是基于单例模式实现,单例模式的实现原理为:
1.类中构造器必须用private修饰。
2.类中必须提供一个用户返回当前对象实例的静态方法。
3.类中存在一个静态的变量,类型为当前类型。
其中单例模式又分为两种:
饿汉模式
在类初始化时就创建一个当前类的实例,后续使用类时返回的永远是当前实例对象。
其特点在于类初始化时就已经创建好对象,后续无需耗费时间创建。
懒汉模式
在类初始化的时候不创建实例,而是另外创建一个静态方法专门用来判断对象是否存在,若不存在再创建对象:
public class Singleton2 {
private static Singleton2 instance = null;
private Singleton2(){
}
//懒汉模式(以时间换空间)
public static Singleton2 getInstance(){
if(instance == null){
instance = new Singleton2();
}
return instance;
}
}
也就是说每次使用类初始化的时候都会先判断对象内部的对象存不存在,比较费时。