代理模式
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); } }
相关文章推荐
- android中Invalidate和postInvalidate的区别
- C#中Dynamic关键字
- LeetCode-350 Intersection of Two Arrays II
- C++简单多线程事件驱动同步通知到主线程
- 字符编码笔记:ASCII,Unicode和UTF-8
- 函数与类
- Android day8
- 数据结构与算法:二叉树
- MS Chart Control - X轴 项目超9项时 Label显示不完全(已解决)
- 使用quartyz2D画圆,并将其三等分
- (OK)(OK)(All in CLI) Fedora23 + Docker(busybox) + NS3 + MANETs - testing
- 172. Factorial Trailing Zeroes
- mongodb 编译
- ERROR: 1005 Can't create table 'tmp_db' (errno: 13)
- Spark性能调优——扩展篇
- IO-同步,异步,阻塞,非阻塞
- 最小的K个数31
- Spring对jdbc的支持
- bzoj 1689: [Usaco2005 Open] Muddy roads 泥泞的路
- 网页开发基础知识 HTML + CSS