Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >设计模式之代理模式

设计模式之代理模式

作者头像
用户1215919
发布于 2018-02-27 02:51:13
发布于 2018-02-27 02:51:13
51100
代码可运行
举报
文章被收录于专栏:大大的微笑大大的微笑
运行总次数:0
代码可运行

       代理模式是一种注重过程的一种模式,在我们做某一具体事情之前或之后做一些辅助性的工作; 好处是将辅助工作从主要工作中抽离出来,但是又能协同工作, 我们只关心主要业务,对于不关心的事情交给代理来做,实现代理需要两个对象:被代理者,执行者

JDK中提供的动态代理(只能代理接口): 

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public interface IBuy {
	void pay();
}

public class Buy implements IBuy{

	@Override
    public void pay() {
	    System.out.println("订单支付完成!");
    }

public class PayProxy implements InvocationHandler {
	private Object obj;
	public PayProxy(Object target) {
	   this.obj = target;
    }

	public Object newInstance() {
		Class<? extends Object> cls = obj.getClass();
		return Proxy.newProxyInstance(cls.getClassLoader(), cls.getInterfaces(), this);
	}
	@Override
	public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
		Object res = method.invoke(obj, args);
		System.out.println("----------");
		sendMsg();
		return res;
	}
	
	private void sendMsg(){
		System.out.println("买家已付款,请尽快发货!");
	}
}

--------------
IBuy buy = (IBuy)new PayProxy(new Buy()).newInstance();
		buy.pay();


console:
订单支付完成!
----------
买家已付款,请尽快发货!

CGLIB方式(代理具体类):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class Buy{
    public void pay() {
	    System.out.println("订单支付完成!");
    }

}

public class CglibPayProxy implements MethodInterceptor {
	private static final CglibPayProxy PROXY = new CglibPayProxy();
	private CglibPayProxy() {
	}

	public static CglibPayProxy getInstance() {
		return PROXY;
	}

	@SuppressWarnings("unchecked")
	public <T> T newProxy(Class<T> clazz) {
		Enhancer enhancer = new Enhancer();
		 enhancer.setSuperclass(clazz);
		 enhancer.setCallback(this);
		 return (T) enhancer.create();
	}

	@Override
	public Object intercept(Object arg0, Method arg1, Object[] arg2, MethodProxy arg3)
	        throws Throwable {
		Object res = arg3.invokeSuper(arg0, arg2);
		System.out.println("------------");
		sendMsg();
		return res;
	}

	private void sendMsg() {
		System.out.println("买家已付款,请尽快发货!");
	}


Buy buy = CglibPayProxy.getInstance().newProxy(Buy.class);
		buy.pay();
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
运算放大器应用汇总1
​内容包括虚短和虚断理解,反相、同相比例运算放大电路,电压跟随器,相关运算电路(加、减、乘、除、积分、微分、对数与指数等),差分放大电路,I/V、V/I转换电路,电压抬升电路,F/V转换电路,有源滤波器,移相电路,电压源等。持续更新,原创不易!
爱上电路设计
2023/09/05
8081
运算放大器应用汇总1
运算放大电路在音频放大电路中的应用研究与实现「建议收藏」
1、导言 放大电路是构成各种功能模拟电路的基础电路,也是对模拟信号最基本的处理。音频信号可以分解成若干频率的正玄波之和,其频率分为在20Hz~20KHz。不当的放大电路会造成音频信号的失真,亦会带来干扰和噪声。 所有电子信息系统组成的原则都应包含:1、满足功能和性能要求,2、尽量简单,3、电磁兼容,4、调试应用简单。 因此本文就来研究在不会增大电路复杂度的前提下,如何实现音频信号放大的同时对信号进行优化。 2、常见运算电路对音频信号的处理 2.1反相比例运算电路 图1所示为反相比例运算电路,Uin通过电阻R1作用于集成运放的反相输入端,同相输入端通过补偿电阻R3接地。R3的作用是保持运放输入级差分放大电路具有良好的对称性,从而提高运算精度。
全栈程序员站长
2022/09/03
2.6K0
运算放大电路在音频放大电路中的应用研究与实现「建议收藏」
基本运算放大器原理「建议收藏」
同相位 Vp Vn Vo 上升 接地或稳定的电平 上升 下降 接地或稳定的电平 下降 反相位 Vp Vn Vo 上升 接地或稳定的电平 下降 下降 接地或稳定的电平 上升
全栈程序员站长
2022/08/11
1.4K0
基本运算放大器原理「建议收藏」
模电——基本运算放大器原理[通俗易懂]
∵ Vin = Vp – Vn 且 Vout = A × Vin(A:为放大倍数) 又 ∵ A = ∞,Vin = Vout / A ∴ Vin => 0 结论:Vp = Vn
全栈程序员站长
2022/08/11
4.3K0
模电——基本运算放大器原理[通俗易懂]
差分放大电路的缺点,你知道几个?
话不多说,直接干货,图1是差分放大电路的基本结构,由一个运算放大器和4个外围匹配电阻组成,常用来进行电流检测或差分信号放大,差分放大器有几个固有的弊端,如果不了解这些弊端,将影响我们的电路设计,看看这些弊端,你知道几个?(本文整理自看海的原创视频课程《运放秘籍》第二部:仪表放大器专项)
工程师看海
2024/03/04
6150
差分放大电路的缺点,你知道几个?
新课上线 | 牛人讲解微分、积分电路
很多朋友觉得PID是遥不可及,很神秘,很高大上的一种控制,对其控制原理也很模糊,只知晓概念性的层面,知其然不知其所以然,那么本文从另类视角来探究微分、积分电路的本质,意在帮助理解PID的控制原理。
AI 电堂
2022/12/08
3600
新课上线 | 牛人讲解微分、积分电路
反相输入放大器与生俱来的坑及其解决
反相放大器能将输入的信号反相放大,这是一个基本的知识,学过电路的一般都知道。反相放大器的计算公式为Vout = -Vin*Rf/Rin(运算放大器应用汇总之一、反相比例运算放大电路)。根据已知的公式,能很轻松的完成设计。但反相放大器与生俱来的有个缺点:输入阻抗低。而我们在电路设计中一般希望放大器的输入阻抗要尽量高,这样放大器才不会从信号源吸收一部分电流,进而对放大结果产生影响。
爱上电路设计
2024/05/28
6300
反相输入放大器与生俱来的坑及其解决
【电子实验4】TDA2030功率放大电路
①脚是正向输入端。 ②脚是反向输入端。 ③脚是负电源输入端。 ④脚是功率输出端。 ⑤脚是正电源输入端。
謓泽
2024/06/18
8500
【电子实验4】TDA2030功率放大电路
IV转换模块-4~20mA -> 0~3V
正好实验室有压力传感器但是缺少一个变送器,那么这篇文章会说明为什么变送器要电流的传送,以及如何做一个。
云深无际
2024/08/20
1800
IV转换模块-4~20mA -> 0~3V
ESP32开源示波器.硬件设计
ADC 输入和完整的输入调节电路。ADC 针对双极测量进行配置,此测量中的最终转换结果是正负 ADC 输入电压之间的差分电压。
云深无际
2024/08/20
2150
ESP32开源示波器.硬件设计
功率放大器电路设计「建议收藏」
由查表法得到R5=1.422KΩ,R6=5.399KΩ,C4=6500pF,C1=1588pF;C2=4uF,C3=7uF,R7=2.251KΩ,R8=1.125KΩ。
全栈程序员站长
2022/09/06
1.5K0
功率放大器电路设计「建议收藏」
什么是运放噪声频率曲线?怎么算噪声有效值?只需要3个公式!
运放有哪些噪声源?什么是噪声频率曲线?什么是等效输入噪声?噪声和带宽是什么关系?什么是闪烁噪声、什么是白噪声?
工程师看海
2022/08/05
1.1K0
什么是运放噪声频率曲线?怎么算噪声有效值?只需要3个公式!
Multisim14.2仿真使用汇总
​内容包括仿真软件的介绍,原理图录入与探针,分析与仿真,仿真与实际情况对比,Spice仿真模型导入Multisim,仿真实例下载等。紫色文字是超链接,点击自动跳转至相关博文。持续更新,原创不易!
爱上电路设计
2023/09/07
4K0
Multisim14.2仿真使用汇总
9种运算放大器的应用电路
本身我的专业是理科的,现在干了工科的活,最近恶补相关电路设计知识,我把电阻,电容,二极管,三极管这些都学完了,但是到了放大器就有点不会算了。
云深无际
2023/05/24
2.3K0
9种运算放大器的应用电路
医用眼科前房高精度侵入式压力传感器.电路设计上
之前写过这个东西,后面又断断续续的写了其他的一些东西,这篇文章是尽量的给出一个详细的电路设计。但是后面又看到不少好玩的东西我就都写进去了,所以文章和以往一样没有那么纯粹,而且一些具体的参数性调节的计算可能不会写很多,不过之后都会补上的。
云深无际
2024/08/20
960
医用眼科前房高精度侵入式压力传感器.电路设计上
Multisim软件使用详细入门教程(图文全解)
工程师们可以利用Multisim提供的虚拟电子器件和仪器、仪表搭建、仿真和调试电路,从而减少电路的设计成本和研发周期。
timerring
2022/07/20
30.1K0
Multisim软件使用详细入门教程(图文全解)
基于LM324的音调放大电路
本次设计采用LM324、LM386、4欧姆的喇叭各1个,场效应管、电阻、电容等器件,
全栈程序员站长
2022/09/01
2.9K1
基于LM324的音调放大电路
仪表放大器只有差模输入不工作的解释
昨天在INA前面加一个单纯的差模信号,后面没有反应,是因为输入范围不在INA的共模工作范围。
云深无际
2024/08/20
1740
仪表放大器只有差模输入不工作的解释
PWM实现ADC采集电量原理
对于没有ADC的主控芯片来说,如果要实现ADC的功能,可以用两个GPIO和一个运算放大器解决该问题。对于某些国产芯片来说,其内部没有ADC,所以在有些方案上采用的是PWM电路进行模拟电压的测量。接下来逐步分析一下基本的原理与采集过程。
bigmagic
2020/03/17
4.2K0
输入偏置电流返回路径在仪表放大器应用中的重要性-TI 应用报告 ZHCAB97
这个应用手册在50多个仪表放大器的文档中都有,说明是一个共性的问题,其次我也在做东西的过程中体会到了这一点,以及几年前做东西失败的原因。
云深无际
2025/04/07
880
输入偏置电流返回路径在仪表放大器应用中的重要性-TI 应用报告 ZHCAB97
推荐阅读
相关推荐
运算放大器应用汇总1
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验