- Published on
chain of responsibility 责任链模式
懒加载:hibernate、mybatis,都可以实现懒加载,这个大家应该都知道了,其实也是基于动态代理思想实现的,对刚查询出来的对象做一个代理。然后去调用getX()方法的时候,再实际执行sql查询出来关联的数据。
package wang.jinggo.basics.zhss.proxy;
/**
* 代理模式
* @author: wangyj
* @create: 2021-10-23
* @version: 1.0.0
**/
public class ProxyPatternDemo {
public static void main(String[] args) {
Subject subject = new ConcreteSubject();
Subject proxy = new Proxy(subject);
proxy.request();
}
public interface Subject {
void request();
}
public static class ConcreteSubject implements Subject {
public void request() {
System.out.println("执行请求");
}
}
public static class Proxy implements Subject {
private Subject subject;
public Proxy(Subject subject) {
this.subject = subject;
}
public void request() {
System.out.println("执行额外的条件判断,拷贝是否要调用subject的request()方法");
boolean invoke = true;
if(invoke) {
subject.request();
}
}
}
}