您的位置:首页 > 其它

代理模式

2016-06-18 10:59 225 查看
/**
* 代理模式 :当对象A想要使用对象B的某种功能,但出于安全考虑 ,B不能让A获得,次情况我们可以提供一个对象C,C去拿B的功能给A
*
* 引用以前老师举的一个例子:对象西门庆想要约会潘金莲,但出于情面不能直接去潘金莲家里找她,次情况下,西门庆找到王婆,王婆把潘金莲带到自己家中,
* 实现了 西门庆和潘金莲的约会
*
*/
public class XMQ {

/**
*西门庆 去找 潘金莲的方法  出于不让武大郎 发现,西门庆不能直接去潘金莲的家里找,因此借助王婆
*/
public void FindPanJinlian(WP wp){

//调用王婆的约会方法
wp.DatingMethod();
}

}
public interface Woman {

/**
* 一个约会的方法
*/
public void DatingMethod();

}public class PJL implements Woman{

@Override
public void DatingMethod() {
// TODO Auto-generated method stub

System.out.println("潘金莲 约会。。。。。");
}

}
/**
* 代理类---和提供原始功能的对象属于同一体系
*
*/
public class WP implements Woman{

/**
* 王婆 把潘金莲 叫到自己的家中
*/
private PJL pjl;

public WP(PJL pjl){

this.pjl = pjl;
}

@Override
public void DatingMethod() {
// TODO Auto-generated method stub

//调用潘金莲的 约会方法
pjl.DatingMethod();

}

}public class Test {

public static void main(String[] args) {

WP  wp = new WP(new PJL());

XMQ xmq = new XMQ();

xmq.FindPanJinlian(wp);

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: