代理模式详解

一.代理模式

        什么是代理模式?就是我们不直接访问对象,我们创建被访问对象的访问层,即代理,通过代理类访问对象.

        为什么不直接访问呢?好比你在国内访问国外网址,一般访问不了吧,这个时候你就的通过代理软件(fanqiang工具)去访问,代理软件在海外的服务器会给你解析你所需要的资源. 

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

缺点: 1、由于在客户端和真实主题之间增加了代理对象,因此有些类型的代理模式可能会造成请求的处理速度变慢。 2、实现代理模式需要额外的工作,有些代理模式的实现非常复杂。

二.代码实现

//两个类实现同一接口
interface Subject{
    public void dowork(String work);
}
//被代理的类
class RealSubject implements Subject{
    String work;

    @Override
    public void dowork(String work) {
        this.work = work;
        System.out.println(work);
    }
}
//代理类
class ProxySubject implements Subject{
    private RealSubject realSubject;
    
    public void dowork(String work) {
        realSubject = new RealSubject();
        realSubject.dowork(work);
        System.out.println("翻墙");
    }

    public void doSomething(String work){
        realSubject.dowork(work);
    }
    public void doNothing(String work){}
}

 设计模式只是一种指导思想,你会发现其实这个模式和适配器模式,和装饰器模式有点像.在适配器和装饰器里面就运用到代理模式的技巧.     

 1、和适配器模式的区别:适配器模式主要改变所考虑对象的接口,而代理模式不能改变所代理类的接口。

 2、和装饰器模式的区别:装饰器模式为了增强功能,而代理模式是为了加以控制。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值