当前位置:首页 > CN2资讯 > 正文内容

#yyds干货盘点# 设计模式之代理模式:动态代理动态代理模式

8小时前CN2资讯

设计模式之代理模式:动态代理

1.简述:

代理类并不是在Java代码中定义的,而是在运行时根据我们在Java代码中的“指示”动态生成的,或者说一个代理类是在程序运行时才获取到目标对象的代理。动态代理又称jdk代理。

动态代理让我们在不直接访问某些对象的情况下,通过代理机制也可以访问被代理对象的方法,所以可以应用在很多地方。比如RPC框架,Spring AOP机制

2.代码实现:

/**
* 抽象角色接口
*/
public interface Hello {

/**
* 打招呼
*/
void sayHello();
}/**
* 目标对象角色类
*/
public class RealHello implements Hello {
/**
* 实现接口的方法
*/
@Override
public void sayHello() {
System.out.println("你好");
}
}/**
* 动态代理类
*/
public class DynamicProxy implements InvocationHandler {

//目标对象
private Object target;

public DynamicProxy(Object target) {
this.target = target;
}

/**
* 代理实现方法
* @param proxy
* @param method
* @param args
* @return
* @throws Throwable
*/
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
before();
Object result=method.invoke(target,args);
after();
return result;
}

/**
* 在实现方法前可以做的事情
*/
public void before(){
System.out.println("摘下耳机");
}

/**
* 在实现方法后做的事情
*/
public void after(){
System.out.println("戴上耳机");
}


}/**
* 动态代理测试
*/

public class DynamicProxyTest {

public static void main(String[] args) {
Hello hello=new RealHello();
hello.sayHello();
System.out.println("=====================");
System.out.println("动态代理:");
DynamicProxy dynamicProxy=new DynamicProxy(hello);
// 通过反射加载hello,获取hello接口的方法,生成动态代理
Hello helloProxy= (Hello) Proxy.newProxyInstance(hello.getClass().getClassLoader(),hello.getClass().getInterfaces(),dynamicProxy);
helloProxy.sayHello();
}
}
    你可能想看:

    扫描二维码推送至手机访问。

    版权声明:本文由皇冠云发布,如需转载请注明出处。

    本文链接:https://www.idchg.com/info/24770.html

    分享给朋友:

    “#yyds干货盘点# 设计模式之代理模式:动态代理动态代理模式” 的相关文章

    如何通过 NameCheap 注册 $0.99 便宜域名并选择合适后缀

    在如今的网络世界,获取一个合适的域名可以说是非常关键的。对我来说,域名不仅是一个网站的门牌,更是品牌的第一印象。最近,NameCheap 推出了一个令人兴奋的优惠活动,注册域名低至 $0.99 每年,这绝对是个让人心动的机会。想到能够以这样的低价拥有一个域名,真的是让我忍不住想赶紧注册。 相信大家对...

    选择香港机房的优势与服务:最理想的数据中心解决方案

    在当今数字化的时代,香港机房作为亚洲地区的数据中心枢纽,其重要性愈发凸显。随着全球对高效、安全、稳定数据处理需求的上升,香港凭借其优越的地理位置和完善的网络基础设施,已成为众多企业首选的托管与服务器服务地点。以高速网络连接、优质的BGP多线路接入以及高标准的设施著称,香港机房为客户提供了一系列的解决...

    选择台湾VPS的优势与实用技巧分析

    在当今互联网迅速发展的时代,虚拟专用服务器(VPS)成为了众多企业和个人不二的选择。台湾VPS作为一个相对新兴的产品,凭借自己独特的地理位置和优异的技术性能,逐渐在市场上占据了一席之地。身为个人或企业,在选择服务器时,了解台湾VPS的基本概念及其优势无疑是一个明智的开始。 什么是VPS? VPS,即...

    便宜日本VPS的选择与比较:性价比高的供应商推荐

    在当今数字化时代,VPS(虚拟专用服务器)正成为许多企业和个人的首选解决方案,尤其是在日本市场。对于那些需要可靠网络服务的用户来说,这无疑是一个非常实用的选择。日本的VPS服务以其高性能和稳定性著称,深受开发者、小型企业、网站管理员等用户的喜爱。 日本VPS的定义并不复杂,简单来说,它是一种虚拟化技...

    支付宝与PayPal充值攻略:如何选择适合的支付方式

    支付宝和PayPal是当今全球最受欢迎的支付平台之一,它们各自具有独特的特点和广泛的用户群体。支付宝成立于2004年,由阿里巴巴集团推出,最初是为了支持电子商务交易,逐渐发展成一个多功能的支付应用。用户不仅可以通过它进行在线支付,还可以进行转账、充值、理财等多种活动。随着移动支付的兴起,支付宝也积极...

    解决VPS无法访问Docker的常见问题与有效方法

    VPS无法访问Docker的原因分析 使用VPS运行Docker的过程是许多开发者和运维人员日常工作的重要组成部分。遇到VPS无法访问Docker的情况,首先需要明确问题的原因。这个问题可能来源于多个方面,包括网络配置、Firewall与安全组的设定,还可能涉及到Docker本身的配置和地域限制。...