代理设计模式

假设有这样一种情景:

  • 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 //上网浏览信息
posted @ 2018-01-14 16:11  weller  阅读(148)  评论(0编辑  收藏  举报