文档章节

Proxy

莫问viva
 莫问viva
发布于 2014/03/11 09:25
字数 485
阅读 58
收藏 2


       所谓代理,是指具有与代理元(被代理的对象)具有相同的接口的类,客户端必须通过代理与被代理的目标类交互,而代理一般在交互的过程中(交互前后),进行某些特别的处理。        Proxy模式是很常见的模式,在我们生活中处处可见,例如我们买火车票不一定非要到火车站去买,可以到一些火车票的代售点去买。寄信不一定是自己去寄,可以把信委托给邮局,由邮局把信送到目的地。

代理模式涉及到的三个要点:

1,抽象行为

2,真实角色

3,代理角色


下面我们以寄信为例:

小红是公司一名文员,经常负责公司邮件的收发。公司领导一般有信件发送的时候只需要直接将信件交给小红,然后由小红去找邮局发送就可以了。

分析:在这样一个情景中   抽象行为是发信; 真实角色是邮局; 代理角色是公司文员     

1,抽象行为:  发信

public interface ISend {

public void send(Object message);

}


2,真实角色:邮局发信

public class PostOffice implements ISend {
public void send(Object message) {
System.out.println("邮局寄信...");
}
}

3,代理角色:公司文员

public class Employee implements ISend {

private ISend post;

public void setISend(ISend send){
this.post = send;
}

public void send(Object message) {
if(post == null)
post = new PostOffice();
System.out.println("将信件投递到邮局...");
post.send(message);
}
}

4,老板要发信,让小红代理去办

public class Main {

public static void main(String args[]){
//公司有一文员 小红 (代理对象)
 Employee xiaoHong = new Employee();
 
 //选择一个邮局(真实对象)
 PostOffice post = new PostOffice();
 //小红把信件交给邮局
 xiaoHong.setISend(post);
 
 //老板让小红代理发信
 xiaoHong.send(null);
}
}

输出结果:

将信件投递到邮局...
邮局寄信...





 

© 著作权归作者所有

共有 人打赏支持
莫问viva
粉丝 37
博文 134
码字总数 114035
作品 0
长沙
高级程序员
MySQL Proxy 读写分离(实战总结)

规划: 主mysql服务器:192.168.1.21 从mysql服务器: 192.168.1.22 mysql读写分离器:192.168.1.23 1、读写分离服务器上解压安装包,并添加对应用户,并编辑启动脚本; # tar xf mysql-pro...

阿遥在发呆
2017/05/12
0
0
Apache加载proxy、proxy_ajp、proxy_balancer

由于某些原因,apache的一些模块在最初安装时未能包含进去,在之后又不能重新安装apache,这时就需要在不重新编译apache的情况下新增编译模块,可采用以下方法,举例说明: 我的apache之前忘...

技术小胖子
2017/11/09
0
0
Nginx接收PROXY协议

1 介绍 PROXY协议使Nginx接收客户端连接信息通过代理服务器和负载均衡器传入,例如HAproxy和亚马逊Elastic负载均衡器(SLB)。 通过PROXY协议传入的是客户端IP地址,代理服务器IP地址和端口号...

Leech
2016/08/08
103
0
mysql的主从复制(二)mysql-proxy实现读写分离

安装前准备(三台虚拟机): 主机1: 172.16.24.77 安装msyql服务器端 mysql-proxy 主机2: 172.16.24.88 安装mysql服务器端(mysql主) 主机3: 172.16.24.99 安装mysql服务器端(mysql从) ...

上一段旅程
2014/05/01
0
0
linux mysql proxy 的安装,配置,以及读写分离

linux mysql proxy 的安装,配置,以及读写分离 张映 发表于 2010-03-03 分类目录: mysql 一,mysql proxy是什么,干什么用的 MySQL Proxy就是这么一个中间层代理,简单的说,MySQL Proxy...

daniel-john
2014/07/07
0
0

没有更多内容

加载失败,请刷新页面

加载更多

win10下端口被占用解决办法

win10下端口被占用解决办法 昨天还好好的tomcat,今天启动时候发现tomcat无法启动,看报错信息显示8080端口被占用。 解决办法如下:按win+R输入cmd打开控制台,输入 netstat -ano|findstr 8...

DemonsI
3分钟前
0
0
yum apt chrome 常用软件的SOCKS 代理设置

yum 设置: 在/etc/yum.conf 增加一行,内容为: 在apt-get (apt) 上使用socks代理 chrome socks代理:

idoz
4分钟前
0
0
因 php 默认的 url encode 编码标准引发的一个问题

先看常用的校验请求合法性的一个方式 function createToken($params) { $secretKey = 'secretKey'; ksort($params); $query = http_build_query($params); $token = md5......

anoty
7分钟前
1
0
微信小程序页面栈管理

页面路由 在小程序中所有页面的路由全部由框架进行管理。 页面栈 框架以栈的形式维护了当前的所有页面。当发生路由切换的时候,页面栈的表现如下: 路由方式 页面栈表现 初始化 新页面入栈 ...

昙花一现
43分钟前
2
0
es6 let使用总结

中午偷个闲做个es6let的使用总结 作用域块 在作用域块中声明的变量不受外部的影响,见例子 {let a= 10;{let a= 20;console.log('子作用域', a);// 20}console.log('父作用域', a);// 10...

莫西摩西
45分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部