设计模式 | 代理模式(proxy)
程序员文章站
2022-06-23 23:36:04
定义: 为其他对象提供一种代理以控制对这个对象的访问。 结构:(书中图,侵删) 一个定义公共方法的接口 一个真实实体 一个含有真实实体引用的代理类 我思考了一下,咱们的*就是一种代理 如上图,假如要访问油管,我们需要先将请求发给代理服务器,由代理服务器帮我们访问目标网站。 但是一般这种目标网站 ......
定义:
为其他对象提供一种代理以控制对这个对象的访问。
结构:(书中图,侵删)
一个定义公共方法的接口
一个真实实体
一个含有真实实体引用的代理类
我思考了一下,咱们的*就是一种代理
如上图,假如要访问油管,我们需要先将请求发给代理服务器,由代理服务器帮我们访问目标网站。
但是一般这种目标网站是不知道真正访问的人——也就是我的存在的。
用代码来表示:
公共接口,都有访问的方法
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
总结:
这个设计模式相对来说比较简单,就相当于授权给别人,让别人帮我干事;
有点像古代尚方宝剑的感觉,见到此剑,如朕亲临。(一不小心中二了起来)
生活中也很常见,所以理解起来比较容易。
推荐阅读
-
php设计模式-------(1)策略模式
-
PHP设计模式之工厂模式学习笔记_PHP教程
-
单例模式垃圾回收_动力节点Java学院整理
-
玩Python之HTTP代理
-
PHP设计模式——命令模式_PHP教程
-
独特设计!插图和手绘元素在网页设计中的使用_html/css_WEB-ITnose
-
nginx proxy_cache配置说明 nginx proxy cache nginx tcp proxy nginx proxy pass配
-
Java JDBC入门之八 : DAO设计模式重构查询方法 AND 使用BeanUtils工具类操作JavaBean
-
composer 将远程的包更改为本地开发模式
-
JAVA程序设计(20)-----查询信息的数据库代码