代理模式:
eg:
package com.zt;
/**
* 有一个women类 ,里面有一个抛媚眼的方法
* @author xiaoa
*
* 2017年6月22日
*/
public abstract class Women {
public abstract void paomy();
}
package com.zt;
/**
* 王婆继承了women类,并在类中创建了一个women的对象,即为代理人对象,并有一个为代理人抛媚眼的方法
* @author xiaoa
*
* 2017年6月22日
*/
public class WangPo extends Women{
Women women; //代理人的对象
@Override
public void paomy() {
women.paomy();
}
}
package com.zt;
/**
* 潘金莲的类继承了women类,有一个潘金莲抛媚眼的方法
* @author xiaoa
*
* 2017年6月22日
*/
public class PanjinLian extends Women{
@Override
public void paomy() {
System.out.println("PanjinLian paomy");
}
}
package com.zt;
/**
* 西门庆的类,里面new出一个王婆,new出一个潘金莲,然后让王婆类中的代理人对象指向潘金莲,并调用为代理人抛媚眼的方法
* @author xiaoa
*
* 2017年6月22日
*/
public class Ximen {
public static void main(String[] args) {
WangPo wp=new WangPo();
PanjinLian pjl=new PanjinLian();
wp.women=pjl; //王婆代理了 pjl
wp.paomy();
// 输出: PanjinLian paomy
}
}