代理模式

来源:互联网 发布:mysql创建新的数据库 编辑:程序博客网 时间:2024/06/07 06:55

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

应用场景:

1、远程代理。为一个对象在不同的地址空间提供局部代表,这样可以隐藏对象存在于不同地址空间的事实。

例如:webservice

2、虚拟代理。根据需要创建开销很大的对象。通过它来存放实例化(及new)需要很长时间才能完成的对象。

例如:打开淘宝网页时,很多图片,但图片并不是很快全部显示,而是一张一张的加载出来,那些未显示的图片就是通过虚拟代理来代替真实图片的路径和尺寸。

3、安全代理。控制真实对象的不同访问权限。

4、智能指引。是指调用真实对象时,代理处理另外一些事情。

例如:当对象不再被引用时,代理释放它。

代码实现:

public interface Subject {public String request();}

public class RealSubject implements Subject {public String request() {System.out.println("真实的请求");return null;}}

public class Proxy implements Subject {private RealSubject realSubject;public Proxy(RealSubject realSubject){this.realSubject = realSubject;}public String request() {this.realSubject.request();return null;}}

public class Main {/** * @param args */public static void main(String[] args) {RealSubject realSubject = new RealSubject();Proxy proxy = new Proxy(realSubject);proxy.request();}}


0 0
原创粉丝点击