zoukankan      html  css  js  c++  java
  • 设计模式 | 代理模式(proxy)

    定义:

    为其他对象提供一种代理以控制对这个对象的访问。

    结构:(书中图,侵删)

    一个定义公共方法的接口
    一个真实实体
    一个含有真实实体引用的代理类

    实例:

    我思考了一下,咱们的科学上网就是一种代理
    如上图,假如要访问油管,我们需要先将请求发给代理服务器,由代理服务器帮我们访问目标网站。
    但是一般这种目标网站是不知道真正访问的人——也就是我的存在的。
     
    用代码来表示:
    公共接口,都有访问的方法
    package designpattern.proxy;
    
    public interface Visit {
        void visit(String address);
    }

    真实类(自己的电脑):

    package designpattern.proxy;
    
    public class PC implements Visit {
    
        @Override
        public void visit(String address) {
            System.out.println("访问" + address);
        }
    
    }

    代理类(代理服务器):

    package designpattern.proxy;
    
    public class Proxy implements Visit {
        PC pc;
    
        public Proxy(PC pc) {
            this.pc = pc;
        }
    
        @Override
        public void visit(String address) {
            pc.visit(address);
        }
    
    }

    客户端:

    package designpattern.proxy;
    
    public class Client {
        public static void main(String[] args) {
            Proxy proxy = new Proxy(new PC());
            proxy.visit("youtube.com");
        }
    }
    结果输出:
    访问youtube.com

    总结:

    这个设计模式相对来说比较简单,就相当于授权给别人,让别人帮我干事;
    有点像古代尚方宝剑的感觉,见到此剑,如朕亲临。(一不小心中二了起来)
    生活中也很常见,所以理解起来比较容易。
  • 相关阅读:
    Java的值传递机制
    面向对象
    java中static关键字的作用
    方法的重载和重写
    this和super的用法
    Java中关于return的理解
    java经典的内存图 (数据结构)
    java IO最让初学者误解的取名方式
    UDP 与 TCP简单入门理解示例
    Shiro简单入门
  • 原文地址:https://www.cnblogs.com/imoqian/p/10678850.html
Copyright © 2011-2022 走看看