zoukankan      html  css  js  c++  java
  • 设计模式之笔记--代理模式(Proxy)

    代理模式(Proxy)

    定义

    代理模式(Proxy),为其他对象提供一种代理以控制对这个对象的访问。

    类图

    描述

    Subject,定义了ConcreteSubject和Proxy的共用接口,这样就可以在任何使用ConcreteSubject的地方使用Proxy;

    Proxy,保存一个ConcreteSubject引用使得Proxy可以访问ConcreteSubject实体,并提供一个与Subject相同的接口,这样Proxy就可以用来替代ConcreteSubject;

    ConcreteSubject,定义Proxy所代理的真实实体。

    应用场景

    之前访问google的时候,Client只需要发送一个Request给google服务器,google服务器在接收到这个请求之后就会把页面Response给Client。

    虽然现在不能直接访问google了,但是有时候Client又希望能够用到google,此时就可以使用代理,让代理服务器帮忙转发Client的请求。

    类图如下:

        public abstract class WebSite
        {
            public abstract void Request(string url);
            public abstract string Response();
        }
    
        public class Google : WebSite
        {
            public override void Request(string url)
            {
                Console.WriteLine("get " + url);
            }
    
            public override string Response()
            {
                return "Google";
            }
        }
    
        public class Proxy : WebSite
        {
            private Google google;
    
            public Proxy(Google google)
            {
                this.google = google;
            }
    
            public override void Request(string url)
            {
                this.google.Request(url);
            }
    
            public override string Response()
            {
                return this.google.Response();
            }
        }
  • 相关阅读:
    《Programming in Lua 3》读书笔记(十)
    《Programming in Lua 3》读书笔记(九)
    《Programming in Lua 3》读书笔记(八)
    [原]NYOJ-括号匹配-2(java)
    [原]NYOJ-字符串替换-113
    [原]NYOJ-小光棍数-458
    [原]NYOJ-公约数和公倍数 -40
    [原]NYOJ-开灯问题-77
    [原]NYOJ-数的位数-69
    [原]NYOJ-大数阶乘-28
  • 原文地址:https://www.cnblogs.com/zhou-yi/p/5412847.html
Copyright © 2011-2022 走看看