返回顶部
首页 > 资讯 > 精选 >Java的代理模式怎么理解
  • 429
分享到

Java的代理模式怎么理解

2023-06-29 17:06:37 429人浏览 独家记忆
摘要

这篇文章主要介绍“Java的代理模式怎么理解”,在日常操作中,相信很多人在Java的代理模式怎么理解问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java的代理模式怎么理解”的疑惑有所帮助!接下来,请跟着小编

这篇文章主要介绍“Java的代理模式怎么理解”,在日常操作中,相信很多人在Java的代理模式怎么理解问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java的代理模式怎么理解”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

    代理模式:静态代理

    有时候,我们可能不想直接面对某事或者某人,这样我们就可以找一个中介的人去替我们做,比如送礼物叫跑腿、找保洁上某某同城等等。这样对方也不知道中介的背后是谁参与,起到一个中介作用和保护目标对象的作用,这就是代理模式。也就是有一个中介代替你去做。

    Java的代理模式怎么理解

    1、代理模式的定义

    由于某些原因需要给某对象提供一个代理以控制对该对象的访问。这时,访问对象不适合或者不能直接引用目标对象,代理对象作为访问对象和目标对象之间的中介

    简单结构图:

    Java的代理模式怎么理解

    2、代理模式的优缺点

    优点:

    在客户端与目标对象之间起到一个中介作用和保护目标对象的作用

    可以扩展目标对象的功能

    能将客户端与目标对象分离,在一定程度上降低了系统的耦合度,增加了程序的可扩展性

    缺点:

    会造成系统设计中类的数量增加(因为多了一个或者多个中介类(代理))

    在客户端和目标对象之间增加一个代理对象,会造成请求处理速度变慢

    增加了系统的复杂度

    3、代理模式的分类

    代理模式分为静态代理(本文)动态代理(下一篇文章)

    • 静态: 由程序员创建代理类或特定工具自动生成源代码再对其编译,在程序运行前代理类的 .class 文件就已经存在了

    • 动态: 在程序运行时,运用反射机制动态创建而成

    4、静态代理模式的结构 

    1.抽象主题类: 通过接口或抽象类声明真实主题和代理对象实现的业务方法

    2.真实主题类: 实现了抽象主题中的具体业务,是代理对象所代表的真实对象,是最终要引用的对象

    3.代理类: 提供了与真实主题相同的接口,其内部含有对真实主题的引用,它可以访问、控制或扩展真实主题的功能

    代码演示:

    定义一个抽象主题:

    静态代理在使用时,需要定义接口或者父类,而被代理对象与代理对象一起实现相同的接口或者是继承相同父类

    public interface Subject {    void Request();}

    真实主题:

    public class RealSubject implements Subject{    @Override    public void Request() {        System.out.println("您的航班正在飞行");    }}

    代理类:

    //代理类,实现抽象类的接口public class Proxy implements Subject{    private RealSubject realSubject;    @Override    public void Request() {        //先判断是否存在真实主题RealSubject        //如果没有,就新建一个        if(realSubject == null){            realSubject = new RealSubject();        }        //预处理,使用这个方法        preRequest();        //去访问真实主题类的方法        realSubject.Request();        //代理类的后续方法        postRequest();    }    private void preRequest() {        System.out.println("航班马上起飞啦");    }    private void postRequest() {        System.out.println("航班到达目的地,感谢乘坐");    }}

    测试类:

    public class Test {    public static void main(String[] args) {        //使用代理去访问RealSubject里面的Request        Proxy proxy = new Proxy();        proxy.Request();    }}

    输出结果:

    航班马上起飞啦
    您的航班正在飞行
    航班到达目的地,感谢乘坐

    通过上面的演示,用来一个代理类去访问了真实主题类的方法,这样测试类就不知道到底是谁来访问的,是代理类呢还是代理类后面还有其他人,这样就可以很好的保护对象。这也是代理模式的优点。

    静态代理的总结:

    可以在不修改目标对象的功能前提下,对目标实现功能扩展,但是代理对象需要与目标对象实现一样的接口,所以会有很多代理类,当代理类很多的时候,维护的复杂度就会变大,那么该怎么解决这个问题呢?那就需要使用动态代理。

    5、代理模式的应用场景

    当无法或不想直接引用某个对象或访问某个对象存在困难时,可以通过代理对象来间接访问。使用代理模式主要有两个目的:一是保护目标对象,二是增强目标对象

    该应用场景总结参考自互联网:

    • 远程代理,这种方式通常是为了隐藏目标对象存在于不同地址空间的事实,方便客户端访问。例如,用户申请某些网盘空间时,会在用户的文件系统中建立一个虚拟的硬盘,用户访问虚拟硬盘时实际访问的是网盘空间

    • 虚拟代理,这种方式通常用于要创建的目标对象开销很大时。例如,下载一幅很大的图像需要很长时间,因某种计算比较复杂而短时间无法完成,这时可以先用小比例的虚拟代理替换真实的对象,消除用户对服务器慢的感觉

    • 安全代理,这种方式通常用于控制不同种类客户对真实对象的访问权限

    • 智能指引,主要用于调用目标对象时,代理附加一些额外的处理功能。例如,增加计算真实对象的引用次数的功能,这样当该对象没有被引用时,就可以自动释放它

    • 延迟加载,指为了提高系统的性能,延迟对目标的加载。例如,Hibernate 中就存在属性的延迟加载和关联表的延时加载

    到此,关于“Java的代理模式怎么理解”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

    --结束END--

    本文标题: Java的代理模式怎么理解

    本文链接: https://lsjlt.com/news/325934.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    猜你喜欢
    • Java的代理模式怎么理解
      这篇文章主要介绍“Java的代理模式怎么理解”,在日常操作中,相信很多人在Java的代理模式怎么理解问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java的代理模式怎么理解”的疑惑有所帮助!接下来,请跟着小编...
      99+
      2023-06-29
    • Java代理模式怎么理解
      本篇内容介绍了“Java代理模式怎么理解”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、静态代理模式1.1、 代理模式的定义:由于某些原因...
      99+
      2023-06-22
    • Java 代理模式详解
      Java 代理模式详解 前言一、代理模式概述二、静态代理1、概述2、实现步骤3、代码演示 三、动态代理1、JDK 动态代理机制(1)JDK 动态代理类使用步骤(2)代码示例 2、CGLIB 动态代理机制(1)CGLIB 动...
      99+
      2023-08-18
      代理模式 java 开发语言
    • es6代理模式怎么理解
      本文小编为大家详细介绍“es6代理模式怎么理解”,内容详细,步骤清晰,细节处理妥当,希望这篇“es6代理模式怎么理解”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。 ...
      99+
      2024-04-02
    • Java代理模式怎么实现
      这篇文章主要讲解了“Java代理模式怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java代理模式怎么实现”吧!结构型模式前面创建型模式介绍了创建对象的一些设计模式,这节介绍的结构型...
      99+
      2023-06-02
    • 深入理解Java设计模式之代理模式
      目录一、引言二、什么是代理模式三、代理模式的结构四、代理模式和装饰模式的异同五、代理模式和委托六、代理模式的种类七、代理模式的应用场景八、代理模式的优缺点九、代理模式的实现总结一、引...
      99+
      2024-04-02
    • Java设计模式的代理模式怎么实现
      这篇文章主要介绍了Java设计模式的代理模式怎么实现的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java设计模式的代理模式怎么实现文章都会有所收获,下面我们一起来看看吧。什么是代理模式代理模式的定义: 由于某...
      99+
      2023-06-30
    • Java代理模式的示例详解
      目录定义案例需求方案:静态代理模式总结定义 代理模式(Proxy Parttern) 为一个对象提供一个替身,来控制这个对象的访问,即通过代理对象来访问目标对象,这样做的话好处是可以...
      99+
      2024-04-02
    • Java代理模式的深入了解
      目录一、静态代理模式1.1、 代理模式的定义:1.2、代理模式的优缺点二、动态代理模式总结一、静态代理模式 1.1、 代理模式的定义: 由于某些原因需要给某对象提供一个代理以控制对该...
      99+
      2024-04-02
    • Java设计模式之代理模式详解
      目录一、代理模式二、静态代理三、动态代理一、代理模式 代理模式就是有一个张三,别人都没有办法找到他,只有他的秘书可以找到他。那其他人想和张三交互,只能通过他的秘书来进行转达交互。这个...
      99+
      2024-04-02
    • Java设计模式--代理模式
      目录1、代码设计的代理模式2、计算机网络中的正向代理和反向代理总结1、代码设计的代理模式 代理模式属于构建型模式(Proxy),提供了对目标对象的一种访问方式; 即通过代理对象访问...
      99+
      2024-04-02
    • Java代理模式是什么
      本篇内容介绍了“Java代理模式是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Java 代理模式什么是代理代理是一种设计模式,它的核心...
      99+
      2023-06-19
    • java设计模式之代理模式怎么应用
      代理模式是一种结构型设计模式,它允许通过创建一个代理对象来控制对实际对象的访问。代理对象充当了实际对象的替代品,可以在调用实际对象的...
      99+
      2023-08-08
      java
    • 详解Java中的静态代理模式
      目录静态代理模式代理模式静态代理模式的实现要求举例静态代理模式 代理模式 代理人可以替受代理的人完成一些工作,比如:学校与学生之间的关系来说,学生就好比被被代理类,学生只需要负责上课...
      99+
      2022-12-26
      Java静态代理模式 Java静态代理
    • 怎么理解Java设计模式的策略模式
      这篇文章主要讲解了“怎么理解Java设计模式的策略模式”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么理解Java设计模式的策略模式”吧!一、什么是策略模式策略模式定义了一系列算法,并将每...
      99+
      2023-06-25
    • 怎么理解Java设计模式的原型模式
      本篇内容主要讲解“怎么理解Java设计模式的原型模式”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么理解Java设计模式的原型模式”吧!一、前言单例模式可以避免重复创建消耗资源的对象,但是却不...
      99+
      2023-06-25
    • Java设计模式之代理模式
      本文由老王出租房子引出——代理设计模式,将从最简单的静态代理实现开始,后延伸使用jdk实现动态代理,最后扩展到Cglib实现动态代理。为了更深入理解代理模式,...
      99+
      2024-04-02
    • java代理模式(静态代理、动态代理、cglib代理)
      目录代理模式静态代理代码接口被代理对象代理对象测试动态代理代码:接口目标对象代理对象测试cglib代理代码:目标对象代理对象测试应用总结代理模式 代理模式(Proxy Pattern...
      99+
      2024-04-02
    • java中RMI模式怎么理解
      小编给大家分享一下java中RMI模式怎么理解,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1、说明是分布式对象的应用,使用RMI技术可以使JVM中的对象调用另一...
      99+
      2023-06-15
    • Java单例模式怎么理解
      这篇文章主要讲解了“Java单例模式怎么理解”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java单例模式怎么理解”吧!一、设计模式概览1.1、软件设计模式的概念软件设计模式(Softwar...
      99+
      2023-06-22
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作