代理设计模式

来源:互联网 发布:aws与阿里云差别 编辑:程序博客网 时间:2024/06/10 12:53

今天学习了代理设计模式,在此做一个简单总结,以便今后查阅。

1.先上代码

package lpq;//抽象接口:描述真实角色和代理角色的共同接口interface PenInterface{void sellPen();}//实体类class PenProduce implements PenInterface{String customerName;PenProduce(String name){this.customerName=name;}    public void sellPen(){    System.out.println("The pen is sold to "+this.customerName);    }}//代理类class PenProxy implements PenInterface{PenProduce penproduce;PenProxy(String name){penproduce=new PenProduce(name);}public void sellPen(){penproduce.sellPen();}}public class Customer {public static void main(String[] args) {// TODO Auto-generated method stubPenProxy penproxy=new PenProxy("liupenqiang");penproxy.sellPen();}}
其中包含三个角色

1)抽象角色:实体类和代理类的共同接口,其实是实体类对外的接口;

2)真实角色:即代码中的实体类,是我们最终操作的对象;

3)抽象角色:我们表面上操作的对象,其中包含了对真实角色的引用,另外可以包装一些对真实对象的操作


2.代理模式的好处:

1)可以在代理类中封装一些额外的附加操作,对系统做一些扩展;

3.使用场景

使用场景:

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

2)虚拟代理,根据需要创建开销很大的对象。通过它来存放实例化需要很长时间的对象。

3)安全代理,用来控制真实对象访问时的权限。

4)智能指引,当调用目标对象时,代理可以处理其他的一些操作。







0 0
原创粉丝点击