代理模式Proxy

来源:互联网 发布:php主要干什么 编辑:程序博客网 时间:2024/06/12 00:08

代理模式:

在代理模式(Proxy Pattern)中,一个类代表另一个类的功能。这种类型的设计模式属于结构型模式。

在代理模式中,我们创建具有现有对象的对象,以便向外界提供功能接口。

意图:

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

主要解决:

在直接访问对象时带来的问题,比如说:要访问的对象在远程的机器上。在面向对象系统中,有些对象由于某些原因(比如对象创建开销很大,或者某些操作需要安全控制,或者需要进程外的访问),直接访问会给使用者或者系统结构带来很多麻烦,我们可以在访问此对象时加上一个对此对象的访问层。

使用场景:

1 windows桌面快捷方式。

2 支付宝付账,微信付账

3 spring的aop面向切面编程。

优点:

1、职责清晰。2、高扩展性。3、智能化。

缺点:

1、由于在客户端和真实主题之间增加了代理对象,因此有些类型的代理模式可能会造成请求的处理速度变慢。

2、实现代理模式需要额外的工作,有些代理模式的实现非常复杂。

/** *定义一个people的  *接口 */public interface People {void eat();}class RealPeople implements People{   @Override   public void eat() {      System.out.println("开始吃东西....");   }}class  RealPeopleProxy implements People{private People p;public RealPeopleProxy(People p){this.p=p;}@Overridepublic void eat() {System.out.println("喝口水");        p.eat();        System.out.println("洗洗碗");}}
public class TestProxy {public static void main(String[] args) {RealPeople p=new RealPeople();RealPeopleProxy s=new RealPeopleProxy(p);s.eat();}}









原创粉丝点击