代理模式是一种架构型模式,表现出来就是一个类代表另一个类的功能,一般用在想对访问一个类的时候做一些控制,同时又不想影响正常的业务,这种代理模式在现实的生活中应用的也非常的广泛,我用穷举法给举几个好理解的例子:
1.像我们在大城市里的中介找房子的网站,房东、租户、中间商的三角关系,就是典型的代理模式。
2.还有就是帮助人找媳妇的媒婆,也是代理模式。
3.还有黄牛党等等还有很多。
正向代理和反向代理的区别:
1.正向代理代理的是用户,用户->代理服务器->谷歌的原网站模式,通过代理服务器访问谷歌。
2.反向代理代理的是服务器,比如我们访问百度的时候,其实感觉像访问一台电脑,其实在后面有成千上万台的服务器,比如通过代理服务器代理后台的服务器进行分发请求。
下面咱们通过代码进行一步一步的进行演进:
静态代理父亲给儿子找对象,从代码不灵活进行演变。
package pattern.proxy; /** * 父亲给儿子找对象,父亲有儿子的引用 * 才可以给儿子找对象 */ public class Father { private Son person; public Father(Son person){ this.person=http://www.likecs.com/person; } public void findLove(){ System.out.println("根据你的要求物色"); this.person.findLove(); System.out.println("双色父母是不是同意"); } }