06-代理模式
代理模式
真实类需要实现接口,实现业务方法。
代理类也要实现接口,增强业务方法,比如在执行真实的业务逻辑之前增加日志记录功能等。
package cn.com.test.proxy;
//代理类和真实类都需要实现的接口
interface Bussiness {
void buy();
void sell();
}
//测试类
public class ProxyDemo {
public static void Consumer(Bussiness bussiness){
bussiness.buy();
bussiness.sell();
}
public static void main(String[] args) {
System.out.println("=========未使用代理模式------------------");
Consumer(new RealDo());
System.out.println("==========使用代理模式------------------");
Consumer(new ProxyDo(new RealDo()));
}
}
//真实类,需要实现接口
class RealDo implements Bussiness {
public void buy() {
System.out.println("买买买");
}
public void sell() {
System.out.println("卖卖卖");
}
}
//代理类,需要实现接口
class ProxyDo implements Bussiness {
private RealDo realObj;
public ProxyDo() {
}
public ProxyDo(RealDo realObj) {
this.realObj = realObj;
}
public void buy() {
System.out.println("Proxy对象插入进来,取钱了。");
realObj.buy();
System.out.println("Proxy对象插入进来,运货回店里。");
}
public void sell() {
System.out.println("整理货物。。。。");
realObj.sell();
System.out.println("卖完货了,开始数钱。");
}
}