7. 设计模式
7.1 单例模式
//线程安全,惰性加载
public class Singleton {
private static volatile Singleton singleton;
private Singleton() {
}
public Singleton getInstence() {
if(singleton == null){
synchronized(Singleton.class){
if(singleton == null)
singleton = new Singleton();
}
}
return singleton;
}
}
7.2 代理模式
可以实现业务逻辑和额外逻辑的解耦,在不修改委托类代码的情况下能够做一些额外的处理。
7.2.1 静态代理
若代理类在程序运行前就已经存在,那么这种代理方式称为静态代理,这种情况下的代理类通常都是我们在Java代码中定义的。静态代理可以通过聚合来实现,让代理类持有一个委托类的引用即可。继承同一个类或者接口,实现同样的方法,代理类加上自己额外的操作,再调用目标类的同样的方法。可以产生代理对象的静态代理工厂类&