美文网首页
java代理模式_静态代理

java代理模式_静态代理

作者: 指下光年 | 来源:发表于2021-10-28 14:45 被阅读0次

代理模式

代理模式在java中是一种比较常见的设计模式。设计目的是在服务类与客户类之间插入其他功能,插入的功能对于调用者是透明的,起到伪装控制的作用。

静态代理

某个对象提供一个代理,代理角色固定,以控制对这个对象的访问。代理类和委托类有公共的父类或父接口,这样在使用委托类对象的地方都可以用代理对象代替。代理类负责请求的预处理、过滤、将请求分派给委托类处理、以及委托类执行完请求的后续操作。

  • 代理的三要素:
  1. 有共同的行为(租房)- 接口
  2. 目标角色(租客)- 实现行为
  3. 代理角色(中介)- 实现行为 增强目标对象行为
  • 特点:
  1. 目标角色固定
  2. 在应用程序执行前就得到目标角色
  3. 代理对象会增强目标对象的行为
  4. 有可能存在多个代理,引起类爆炸(缺点)
  • 代理类的实现

共同行为:租房(接口)

//定义接口
public interface RentHouse {
    //定义行为
    public void toRentHouse();
}

目标角色:租客(接口实现)

//目标对象,实现行为
public class ZuKe implements RentHouse{
    @Override
    public void toRentHouse() {
        System.out.println("我要租房,预算5000");
    }
}

代理角色:中介(接口实现)

//代理对象:1.实现行为;2.增强目标对象的行为
public class ZhongJieProxy implements RentHouse{

    private RentHouse rentHouse;

    public ZhongJieProxy(RentHouse rentHouse) {
        this.rentHouse = rentHouse;
    }

    @Override
    public void toRentHouse() {、
        //增强实现
        System.out.println("寻找房源。。。。");
        //接口实现
        rentHouse.toRentHouse();
        //增强实现
        System.out.println("准备合同。。。。");
    }
}

测试

public class App {
    public static void main( String[] args ) {
        //目标对象
        RentHouse rentHouse = new ZuKe();
        //代理对象(传递目标对象)
        ZhongJieProxy zhongJieProxy = new ZhongJieProxy(rentHouse);
        //通过调用代理对象中的方法,执行目标对象的行为
        zhongJieProxy.toRentHouse();
    }
}

结果

"C:\Program Files\Java\jdk1.8.0_291\bin\java.exe"
寻找房源。。。。
我要租房,预算5000
准备合同。。。。
Disconnected from the target VM, address: '127.0.0.1:63985', transport: 'socket'

Process finished with exit code 0

相关文章

  • java | 什么是动态代理?

    最近在复习 Java 相关,回顾了下代理模式。代理模式在 Java 领域很多地方都有应用,它分为静态代理和动态代理...

  • Java设计模式之代理模式

    Java设计模式之代理模式 代理模式 静态代理 动态代理 为什么需要代理 通过代理,我们能够不用知道委托人是谁,而...

  • Proxy代理者模式(一)

    摘要 本篇笔记针对Java设计模式中最难理解的代理者模式进行讲解,从静态代理、动态代理,及Java相关代理类的应用...

  • 静态/动态代理模式

    代理, 顾名思义就是让别人替你完成或处理事情。 在Java设计模式中,代理模式又可分为静态代理和动态代理模式。静态...

  • Java--代理模式、动态代理

    代理模式是很常见的一种设计模式,如AppCompatActivity兼容方案,Java中代理模式分为静态代理和动态...

  • 代理模式,静态代理和动态代理

    Java代理模式:静态代理和动态代理[https://blog.csdn.net/qq_29152241/arti...

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

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

  • 手搓代码-从Java动态代理到AOP

    关键字 java 代理模式 动态代理 自定义注解 泛型使用 AOP springboot 1.java静态代理 遵...

  • Java 代理

    静态代理 动态代理 JDK 提供的Proxy CGLib cglib | GitHub 参考文章 Java的三种代理模式

  • Java JDK Proxy和CGLib动态代理示例讲解

    简介 代理模式在Java中有很多应用场景,而代理又分静态代码和动态代理。静态代理是编写、编译或加载时织入代码实现,...

网友评论

      本文标题:java代理模式_静态代理

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