例子来源于秦小波的《设计模式之禅》
1、代理模式的接口类,代理的类和被代理的类都需要实现此接口
/**
* @author zhaojianbo
*/
public interface KindWomen {
void makeEyesWithMan();
void happyWithMan();
}
2、被代理对象
/**
* @author zhaojianbo
*/
public class PanJinLian implements KindWomen {
@Override
public void makeEyesWithMan() {
System.out.println("潘金莲在抛媚眼。。。。");
}
@Override
public void happyWithMan() {
System.out.println("潘金莲在和男人。。。。");
}
}
3、代理对象
/**
* @author zhaojianbo
*/
public class WangPo implements KindWomen {
private KindWomen kindWomen;
public WangPo() {
this.kindWomen = new PanJinLian();
}
public WangPo(KindWomen kindWomen) {
this.kindWomen = kindWomen;
}
@Override
public void makeEyesWithMan() {
this.kindWomen.makeEyesWithMan();
}
@Override
public void happyWithMan() {
this.kindWomen.happyWithMan();
}
}
4、测试类
/**
* @author zhaojianbo
*/
public class XiMenQing {
public static void main(String[] args) {
WangPo wangPo = new WangPo();
wangPo.makeEyesWithMan();
wangPo.happyWithMan();
}
}