代理设计模式

Posted weller

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了代理设计模式相关的知识,希望对你有一定的参考价值。

假设有这样一种情景:

  • l 张三借给李四5000000块钱
  • 李四不换了,张三很生气
  • 张三找到王五,王五是讨债公司的
  • 王五准备了老虎闸和辣椒水
  • 把李四欠张三的钱拿回来了

也就是说,张三委托王五找李四要钱,也就是说王五代理了张三。

代理设计是在Java中一种常用的设计模式,所谓代理设计就是指一个代理主题来操作真实主题,真实主题执行具体的业务操作,而代理主题负责其他业务的处理,就好比生活中使用的代理上网那样,客户通过网络代理连接网络,由代理服务器完成用户权限等操作。

 

不管是代理操作也好,真实的操作也好,其共同目的都是上网,至于里面是如何操作用户并不关心。

 1 interface Network{
 2     public void browse();   //浏览上网
 3 }
 4 class Real implements Network{                //真是的网络
 5     public void browse() {
 6         System.out.println("上网浏览信息");
 7     }
 8 }
 9 class Proxy implements Network{      //代理服务器
10     private Network network;         //代理对象
11     public Proxy(Network network) {
12         this.network = network;
13     }
14     public void check() {
15         System.out.println("检查用户是否合法");
16     }
17     public void browse() {
18         this.check();
19         this.network.browse();  //在代理服务器中调用真实的主题操作
20     }
21 }
22 public class TestProxy {
23     @Test
24     public void test() {
25         Network network = null;
26         network = new Proxy(new Real());  //指定代理操作
27         network.browse();        //客户只关心上网一个操作
28     }
29 }
30 //检查用户是否合法
31 //上网浏览信息

以上是关于代理设计模式的主要内容,如果未能解决你的问题,请参考以下文章

Java RMI地址解析问题

用于从 cloudkit 检索单列的代码模式/片段

是否有在单个活动中处理多个片段的 Android 设计模式?

java代码实现设计模式之代理模式

Java设计模式-代理模式之动态代理(附源代码分析)

十条实用的jQuery代码片段