学习笔记----设计模式之动态代理+工厂模式的混合使用简单demo

本文介绍了代理模式的应用,特别是不修改原始实现类代码的情况下扩展功能,如添加权限验证。代理分为静态代理和动态代理。静态代理需要为每个被代理类创建单独的代理类,而动态代理则更为灵活。文章提供了静态代理的简单示例,包括接口定义、代理类实现和测试代码。
摘要由CSDN通过智能技术生成

最近项目有个需求,要用到动态代理调用远程接口,本地不实现接口,然后就学习了一下该设计模式并记录下来。

我自己的理解。

代理:不提供对对象的直接引用,通过代理的方式对目标对象进行调用。我认为,目前最大的用处在于不改变原有实现类的源代码的情况下,扩展类,增加需求。比如,我的需求是这样的,我要增加对某个类的访问权限,而这个访问权限是针对某些类限定的,那么我就不能去直接更改这个目标类的源代码,因为一旦我再目标类里修改了源代码,那就意味着 所有访问此类的都要经过此权限校验,这与需求不符。那么我就可以使用代理,在需要调用此目标类的调用出使用代理类,在代理类中增加我们的权限验证,这样就需要修改原目标类的代码,又实现了功能。这只是我简单列举的其中一个例子,还有很多应用场景,比如 添加日志 等等

代理又分静态代理和动态代理

静态代理:针对每个需要被代理的类写一个代理类。缺点是:代理类和被代理类都要实现同一个接口或抽象类,并且,如果需要代理的类有很多的话,那么就需要写很多的代理类,因此,动态代理应运而生。

一、静态代理简单demo

1.公共接口(抽象类也行)

public interface UserService {

	String getName(int id);
	
	Integer getAge(int id);
}
2.实现类

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值