JAVA23种设计模式之代理模式(二)静态代理模式

情景对话玩转java设计模式 - 代理模式 最近一直在看一些框架的源码,发现到最后很多地方都用到代理,尤其是动态代理。例如SpringData jpa中EntityManager的创建过程。在23种设计模式中有一种模式就是代理模式,这里打算对这种模式整理一下,并从源码的角度分析一下对象是如何生成出来的。个人觉得这个模式是23种当中最难的一种,深研究的话需要追述到jvm,这里尽量讲明白,不足之处希望大家指正。 定义 所谓的代理,就是中介,也就是说给目标对象提供一个代理(中介)对象,并由这个中介对象去控制对目标对象的引用。这样做的好处是: 通过代理. 阅读详情
  • 静态代理模式
    静态代理模式就是在代码中已经确定后代理类和被代理类的关系,在运行中不能做任何修改。这种模式要求在使用时,需要定义接口或者父类,被代理对象与代理对象一起实现相同接口或者继承相同父类。这种代理模式要求代理对象和被代理对象需要共同继承的类或者接。
  • 示例代码:
    public interface Caculate {
        int add(int a,int b) ;
        int sub(int a,int b) ;
        int mul(int a,int b) ;
        int div(int a,int b) ;
    }
    
    被代理对象:
    public class CaculateImpl implements Caculate {
        @Override
        public int add(int a, int b)  {
            return a+b;
        }
        @Override
        public int sub(int a, int b) {
            return a-b;
        }
        @Override
        public int mul(int a, int b) {
            return a*b;
        }
        @Override
        public int div(int a, int b) {
            return a/b;
        }
    }
    
    代理对象:
    public class CaculateProxy implements Caculate {
        private  Caculate caculate;
    
        public CaculateProxy(Caculate caculate) {
            this.caculate = caculate;
        }
        @Override
        public int add(int a, int b) {
            return caculate.add(a,b);
        }
        @Override
        public int sub(int a, int b) {
            return caculate.sub(a,b);
        }
        @Override
        public int mul(int a, int b) {
            return caculate.mul(a,b);
        }
        @Override
        public int div(int a, int b) {
            return caculate.div(a,b);
        }
    }
    
    测试主函数:
    public class Mian {
        public static void main(String[] args) {
            CaculateImpl caculate = new CaculateImpl();
            CaculateProxy caculateProxy = new CaculateProxy(caculate);
            int result = 0;
            result = caculateProxy.add(1,3);
            System.out.println("add------------"+result);
        }
    }
    
  • 优缺点:
  1. 优点:
    可以做到不对目标对象进行修改的前提下,对目标对象进行功能的扩展和拦截。
  2. 缺点:
    代理对象需要与目标对象实现一样的接口,所以会有很多代理类,类太多.同时,一旦接口增加方法,目标对象与代理对象都要维护
【Java】六大设计原则和23种设计模式 代理模式给某一个对象提供一个代理对象并由代理对象控制对原对象的引用。通俗的来讲代理模式就是我们生活中常见的中介。举个例子来说明:假如说我现在想买一辆二手车,虽然我可以自己去找车源,做质量检测等一系列的车辆过户流程,但是这确实太浪费我得时间和精力了。我只是想买一辆车而已为什么我还要额外做这么多事呢?于是我就通过中介公司来买车,他们来给我找车源,帮我办理车辆过户流程,我只是负责选择自己喜欢的车,然后付钱就可以了。 阅读详情

相关推荐

java中的三种代理模式

该资源提供了三种代理模式的使用代码,其中包含每种模式的jar包、具体代码、Demo测试类,详细的注释帮助你来理解。

Java23种设计模式之代理模式的学习

源码链接(Gitee码云):https://gitee.com/oldou/javadesignpatterns 这里有我整理好的Java23种设计模式的源码以及博客教程,博客教程中介绍了Java23种设计的模式的各种实现方式以及应用场景,非常适用于学习以及提高我们的设计思维,如果对大家有所帮助,请记得star一下给予作者一定的精神支持,你的star是我写出更好的博客的动力,谢谢大家。 代理模式(proxy pattern) 在代理模式(Proxy Pattern)中,一个类代表另一个类的功能。这种..

weixin_43246215的博客 2202

Zemax热分析实战:5分钟搞定双胶合透镜温度漂移优化(附操作数详解)

本文详细解析了使用Zemax进行光学系统热分析的全流程,以双胶合透镜为例,重点阐述了如何通过多重结构编辑器模拟温度变化,并利用关键操作数优化系统以抵抗温度漂移。文章提供了从基础设置到高级优化的实战技巧,帮助工程师快速掌握无热化设计方法,确保系统在宽温范围内保持稳定成像性能。

n4o5p6q7r的博客 397

关于JAVA设计模式中的代理模式之静态代理模式

学习java的23中代理模式的时候,今上午学习了装饰者模式和代理模式,发现装饰者模式和代理模式里面的静态代理模式太像了,然后各种找资料,但是无意中却发现很多关于代理模式的静态代理模式的博客都存在一些问题(只是我个人的一点看法,后面会祥讲,如果的确是我错了还望各位能够指正,谢谢了!)先来看我找到的静态代理模式代码: /**  * 接口  */ public interface IUserDao { ...

hxy___的博客 691

从设计到实战:手把手教你用SolidWorks完成一个简易离心泵叶轮的水力设计全流程

本文详细介绍了使用SolidWorks进行简易离心泵叶轮水力设计的全流程,涵盖参数计算、水力设计和三维建模等关键步骤。通过实际案例演示,帮助机械设计工程师和学生掌握从理论到实践的转化技巧,特别适合低比转速离心泵叶轮的设计需求。

weixin_30621711的博客 232

【个人记录】CentOS7升级glibc至2.28

由于CentOS7系统已经停止支持, 虽然大部分业务已经迁移至OpenEuler,但仍然有部分业务系统跑在CentOS7上。在尝试部署新业务环境时经常会提示如下错误(以code-server运行需要的node 20为例)node -v为了保障业务可正常运行,通常采用Docker继承好的node环境进行部署,但部分场景还是需要宿主机使用新版glibc版本。本文记录本人一次成功升级glibc(2.17=>2.28)的步骤。

喵呜 3883

Java静态代理模式

静态代理模式是23中常用设计模式之一的代理模式的一种,它可以帮助被代理的对象完成一些前期的准备工作和后期的善后工作,以此让被代理对象专心完成自己的核心工作 静态代理模式由三个部分组成: 一个公共的接口 一个代理对象 一个被代理对象 代码案例: // 接口 吃饭 interface HaveMeals { void eat(); } // 被代理者 人 class Person implements HaveMeals { @Override public void ea.

BingJin_mo的博客 276

DC-DC BUCK电路 PCB 布局布线 5 要点:以 XL4015 12V转5V 为例解析噪声控制

本文以XL4015 12V转5V降压电路为例,详细解析DC-DC BUCK电路PCB布局布线的5个关键要点,重点探讨噪声控制策略。通过功率回路最小化、热管理与接地优化、电感电容布局、反馈网络防干扰设计以及实测验证技巧,帮助工程师实现高效稳定的电源设计,显著降低输出纹波和电磁干扰。

weixin_29165725的博客 369

java开发,必须要懂的23种设计模式——代理模式(静态代理模式)

所以说,“代理”其实就是一种,通过另一个人实行你的销售功能,同时能够增强你的销路、降低你风险的一种商业行为。 也就是说,在编程中,模仿这种商业模式,让另一个类去实行本类的功能,同时扩展功能、增加安全性的一种模式。

我想做阿信的博客 446

Oracle19c安装,基本配置教程(超详细)

安装有出错的风险,卸载也是比较麻烦的,所以先提前设置一个还原点,在windows中的步骤如下,如果对自己有信心,可以直接跳过该部分开始安装oracle在设置中进入创建还原点的界面开始创建还原点上面已经成功创建了还原点,如果安装oracle时出现问题,自己也无法解决,恢复到安装之前即可,恢复步骤如下经过上面的步骤,Oracle我们就能够正常使用了,我们就使用自己在sql plus里面创建的账号即可,创建的表会默认存放在我们自己创建的表空间里面。

秃头披风侠的博客 7万+

基于Simulink雷达系统建模仿真(附源码)

此示例显示如何设置由发射器、带目标的信道和接收器组成的雷达系统仿真。一、系统架构该系统包括:雷达脉冲发生器,以 2% 占空比(导通时间 = 2 ms,周期 = 100 ms)输出功率为 1 mW 的啁啾声。RF发射器部分由滤波器和组成,使用RF模块集电路包络库模块实现。由于滤波器是线性器件,放大器是非线性器件,因此它们被分成两个独立的子系统。这种分离允许在每个子系统中使用不同的仿真频率集。这种分离还允许在更快的仿真速度和级联链中可用的级间负载效应损失之间进行权衡。

珞瑜的博客 4581

Java学习——多线程之静态代理模式

Java学习——多线程之静态代理模式 我们在学习Java时知道23种设计模式是前人总结出来的比较好的模式,以供后人使用,那么23种设计模式到底是哪23种呢?主要分为3大类,如下: 1.创建型模式(共五种):工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 2.结构型模式(共七种):适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 3.行为型模式(共十一种):策...

qq_43411550的博客 495

详解【异质图卷积网络 RGCN】回顾:图神经网络问题的三大处理步骤 | 从起源说起,RGCN核心公式解释,两种降低模型参数量/优化的方式,附核心代码实现讲解

本篇,我们深入分析和学习RGCN的原理以及为何要这么做。首先让我们来回顾对于图神经网络问题的三大处理步骤,可以说,这是该深度学习模型的基本理解,后续都是在深化其中的细节处理。然后以容易理解的方式,引出异质图卷积网络RGCN的由来,主要讲解其核心公式和论文中作者所提出的两种降低模型参数量/优化的处理办法,并给出基础分解以及块对角分解的核心实现代码讲解。最后附上RGCN源代码及说明。

追光者♂:记录、分享、总结、提升,现象级专栏《Python从入门到人工智能》作者,无惧黑暗,坚信曙光 1279

JAVA 静态代理模式

前言:     最近学习JAVA设计模式的代理模式,将学习的一些东西记录下来。  什么是代理模式?        代理模式的定义:代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。       通俗点说:即是在不改变源码的情况下,实现对目标对象的功能扩展。        代理模式可以分为静态代理和动态代理。        其通常由两部分构成,即代理类和委托类,他们对...

weixin_39338370的博客 335

7.26华为OD机试真题 新系统 - 炸弹人的雷区数量 (Java/Py/C/C++/Js/Go)

7.26华为OD机试真题 新系统 - 炸弹人的雷区数量 (Java/Py/C/C++/Js/Go)

算法大师! 793

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Java进阶 23种设计模式 详解+应用+实例代码

文章目录前言一、单例模式1.概念2.单例模式应用(1) 懒汉式 基础版(2) 懒汉式 双重校验锁版(3) 饿汉式 单例模式(4)登记式 单例模式 前言 Java的 23种设计模式 创建型模式,共五种(1-5):工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种(6-12):适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共十一种(13-23):策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式

Jiang_bug的博客 1万+

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

代理模式——举例说明Java23种设计模式中的代理模式

代理模式——举例说明Java23种设计模式中的代理模式1. 概述1.1 定义1.2 组成部分2. 静态代理2.1 引出代理模式的一个简单业务场景2.2 静态代理例子1:2.3 静态代理例子2:3. 动态代理3.1 JDK代理(接口代理)3.1.1 JDK动态代理例子13.1.2 JDK动态代理例子2分析3.1.3 JDK动态代理例子33.2 Cglib 代理4. 附代码4.1 静态代理代码4.1 例子1代码4.2 例子2代码4.2 动态代理代码4.1 JDK 动态代理4.1.1 JDK 动态代理例子14.1

@素素~的博客 1990

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

java中的静态代理模式

java中的静态代理模式 1 package Thread; 2 3 4 public class StaticProxy{ 5 public static void main(String[] args){ 6 //创建真实角色 7 Marry you =new You(); 8 ...

qq_35810838的博客 101

java设计模式之代理模式(静态代理)

  今天给大家分享的是java设计模式之代理模式中的静态代理模式,动态代理模式将在后面文章中给出。如有不足,敬请指正。 一、代理模式是什么 代理模式是面向对象编程的 23 种基础设计模式之一。 代理模式的定义: 为其他对象(源对象) 提供一种代理以控制对这个对象(源对象) 的访问。  需求: DAO 层的代码操作。我知道分别有 获得数据库连接(相同的) 获得操作对象(相同的) 封装参数(...

weixin_43974276的博客 203

研磨23种大话设计模式------静态代理模式(简修版)

大家好,我是一位在java学习圈中不愿意透露姓名并苟且偷生的小学员,如果文章有错误之处,还望海涵,欢迎多多指正 如果你从本文 get 到有用的干货知识,请帮忙点个赞呗,据说点赞的都拿到了offer 简单的认识代理模式: 代理模式(Proxy Pattern),又叫委托模式,是指为其他对象提供一种代理,以控制对这个对象的访问,属于结构型设计模式 目的是为了保护目标对象或增强目标对象 代理模式的两种实现方式:静态代理和动态代理 接下来我们先实现静态代理: 问题引申: 1,静态代理: 在思考什么是静态代理前我.

bw_cx_fd_sz的博客 388

Java23种设计模式之代理模式

java面向对象23种设计模式之代理模式

m0_64332518的博客 364

JAVA23种设计模式学习,源码+案例分析+类图讲解

本文对JAVA中23种设计模式进行了简单的讲解,幷加以实际案例进行辅助理解,每种模式都会举例说明,幷将源码开源至gitee和githbu上。JAVA目录下为源码,resources目录下的UML文件夹中存放的是每种设计模式对应的UML源文件,本人使用Umbrello linux版。有错误的地方,欢迎大家指正。

qq_22610595的博客 3827

23种设计模式之代理模式

在软件设计中,使用代理模式的例子也很多,例如,要访问的远程对象比较大(如视频或大图像等),其下载要花很多时间。还有因为安全原因需要屏蔽客户端直接访问真实对象,如某单位的内部数据库等。代理模式的定义:由于某些原因需要给某对象提供一个代理以控制对该对象的访问。这时,访问对象不适合或者不能直接引用目标对象,代理对象作为访问对象和目标对象之间的中介。代理模式的主要优点有:其主要缺点是:那么如何解决以上提到的缺点呢? 答案是可以使用动态代理方式代理模式的结构比较简单,主要是通过定义一个继承抽象主题的代理来包含真实主题

致力于不留技术债务cuizb.top 706

23种设计模式——最好理解的代理模式

一、 到底啥是代理模式? 用官方的话说,代理模式就是为目标对象提供另外一种访问方式,通过访问代理对象来间接访问目标对象。 我们来打个比方,简单点儿描述,比如我是房东,我要出租房屋,以前呢我直接租给住户,这样就是没有代理。但是现在我觉得我直接找客户出租房屋很麻烦,所以我就把房子交给中介,让中介帮我出租房子,我只管提供房子,中介帮我做带客户看房啊、收费等其他事物,这样,房东有了代理,这就是代理模式。 ...

方圆 Blog 524

Java23种设计模式之一(代理模式)

Java23种设计模式之一 代理模式(JDK静态代理模式、JDK动态代理模式、cglib代理模式) 代理模式是一种设计模式,提供了对目标对象额外的访问方式,即通过代理对象访问目标对象,这样可以在不修改原目标对象的前提下,提供额外的功能操作,扩展目标对象的功能。 静态代理模式: 此方法需要目标对象与代理对象实现一样的接口 优点:可以在不修改原目标对象的情况下扩展目标对象 缺点:冗余。由于代理对象要实现与目标对象一致的接口,会产生过多的代理类;不易维护。一旦接口增加方法,目标对象与代理对象都要进行修改。 接口类

love_Java_cat的博客 150
上一篇: JAVA23种设计模式之代理模式(一)远程代理RMI
下一篇: JAVA23种设计模式之代理模式(三)动态代理模式
CoderJu
博客等级 码龄11年 11粉丝 82原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值