代理模式

代理模式:为另一个对象提供一个替身或占位符以控制对这个对象的访问。

使用代理模式创建代表对象,让代表对象控制某个对象的访问,被代理的对象可以是远程对象、创建开销大的对象或需要安全控制的对象。 输入图片说明

举个栗子:

高老庄的故事

唐僧在西天取经的路上,经过高老庄悟空为了将高家三小姐救出八戒的魔掌,悟空扮作高小姐会一会这个妖怪。

高三小姐的神貌和本人

悟空的下手之处是将高三小姐的神貌和她本人分开,这和“开-闭”原则有异曲同工之妙。这样一来,“高三小姐本人”也就变成了“高三小姐神貌”的具体实现,而“高三小姐神貌”则变成了抽象角色,如下图所示。 输入图片说明

悟空扮演并代替高三小姐

悟空巧妙地实现了“高三小姐神貌”,也就是说同样变成了“高三小姐神貌”的子类。悟空可以扮演高三小姐,并代替了高三小姐会见八戒,其静态结构图如下图所示。 输入图片说明

悟空代替“高三小姐本人”去会见猪八戒。

显然这就是代理模式的应用。具体地讲,这就是保护代理模式的应用。只有代理对象认为合适时,才会将客户端的请求传递给真实主体对象。

八戒分辨不出真假老婆

从《西游记》的描述可以看出,猪八戒根本分辨不出悟空扮演的“高三小姐替身”和“高三小姐本身”。客户端分辨不出代理主体对象与真实主体对象,这是代理模式的一个重要用意。

悟空代替高三小姐会见八戒的对象图如下图所示。 输入图片说明

转载于:https://my.oschina.net/sunchm/blog/1588889

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值