美文网首页
八、静态代理

八、静态代理

作者: 你的益达233 | 来源:发表于2020-01-25 21:10 被阅读0次

定义:给目标对象提供一个代理对象,并由代理对象控制对目标对象的引用。
代理对象:起到中介作用

好处:新增额外功能不用改变真实对象类,比如真实对象仅仅买了个礼物,现在打算新增包装礼物功能,就可以用静态代理方式,创建代理对象,里面封装真实对象买礼物,额外做包装礼物功能

缺点:

  1. 由于在客户端(使用时)和真实主题之间增加了代理对象,因此会造成请求的处理速度变慢
  2. 1个静态代理只服务1种类型的目标对象,如果目标对象较多情况下,若采用静态代理,则会出现静态代理对象量多,代码量大,从而导致代码复杂问题

操作原理:创建抽象对象接口,即真实对象和代理对象都要实现的接口,然后在代理对象实现和真实对象实现一样的方法中,引用或者创建真实对象,调用真实对象的方法,然后代理对象额外做一些操作。

示例代码:
步骤1、创建抽象对象接口(Subject):声明你(真实对象)需要让代购(代理对象)帮忙做的事(买Mac)

interface Subject {
    void buyGift();
}

步骤2、创建真实对象

class RealSubject implements Subject {
    @Override
    public void buyGift() {
        System.out.println("我要买一份礼物");
    }
}

步骤3、创建代理对象,并通过代理类创建真实对象示例访问其方法,再额外加功能

class ProxySubject implements Subject {
    @Override
    public void buyGift() {
        RealSubject realSubject = new RealSubject();
        realSubject.buyGift();
        //额外操作
        System.out.println("礼物进行包装");
    }
}

步骤4、开始使用

public class StaticProxyDemo {

    public static void main(String[] args){
        Subject subject = new ProxySubject();
        subject.buyGift();
    }

}

参考:https://www.jianshu.com/p/a8aa6851e09e

相关文章

  • 八、静态代理

    定义:给目标对象提供一个代理对象,并由代理对象控制对目标对象的引用。代理对象:起到中介作用 好处:新增额外功能不用...

  • JAVA动态代理的实现方式

    1. 静态代理VS动态代理 代理类可以增强被代理对象的方法。可分为静态代理和动态代理。 1.1 静态代理 静态代理...

  • 带你初识Java的代理模式

    Spring AOP是基于动态代理设计模式实现的,相对的就有静态代理 动态代理和静态代理 静态代理 对于静态代理,...

  • 编程常用的设计模式

    动态代理和静态代理 静态代理 动态代理 静态代理与动态代理的区别 JDK中的动态代理和CGLIB 实现动态代理的方...

  • 静态AOP

    静态代理 代理分为静态代理和动态代理。静态代理由程序员创建或工具生成代理类的源码,再编译代理类,所谓静态也就是在程...

  • 静态代理、动态代理

    代理分为静态代理和动态代理 按照代理创建的时期,可以分为静态代理和动态代理: (1) 静态代理:由程序员或者...

  • 静态代理

    静态代理, : //创建代理 总结静态代理: 解决: 可以使用动态代理。

  • 浅谈Java和SAP ABAP的静态代理和动态代理,以及ABAP

    文章目录 Java的静态代理 静态代理的优缺点 ABAP的静态代理 Spring AOP的动态代理 JDK动态代理...

  • 设计模式-动态代理模式

    之前介绍了代理模式,大家也都了解了代理模式,不过之前介绍的代理模式是静态代理,静态代理什么意思?静态代理指的是代理...

  • 代理-静态代理

    一、静态代理实现 按照代理模式的类图: 静态代理,代理类在编译时生成;即,需要编码代理类。 从实现上来看,静态代理...

网友评论

      本文标题:八、静态代理

      本文链接:https://www.haomeiwen.com/subject/ixorthtx.html