package com.mybatis.designpatterns.proxy;
abstract class Subject {
public abstract void request();
}
package com.mybatis.designpatterns.proxy;
/**
* 請求的真實類
*/
public class RealSubject extends Subject {
@Override
public void request() {
System.out.println("真實的請求~");
}
}
package com.mybatis.designpatterns.proxy;
/**
* 代理類
*/
public class Proxy extends Subject{
private RealSubject realSubject;
@Override
public void request() {
if (null == realSubject) {
realSubject = new RealSubject();
}
realSubject.request();
}
}
package com.mybatis.designpatterns.proxy;
public class ProxyMain {
public static void main(String[] args) {
Proxy proxy = new Proxy();
proxy.request();
}
}