zoukankan      html  css  js  c++  java
  • 代理设计模式

    假设有这样一种情景:

    • 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 //上网浏览信息
  • 相关阅读:
    【以前的空间】poj 2288 Islands and Bridges
    【以前的空间】网络流合集
    【以前的空间】 单调队列系列
    【以前的空间】几道平衡树
    【以前的空间】vijos 1720 阿狸的打字机
    对拍程序
    【Ubuntu】编写一个c语言代码
    用Matlab对数据进行线性拟合算法
    Oracle视图传递参数
    oracle decode的用法
  • 原文地址:https://www.cnblogs.com/mzct123/p/8283543.html
Copyright © 2011-2022 走看看