java代理模式之静态代理

本文详细介绍了静态代理设计模式的概念及其实现方式。通过具体的Java代码示例,展示了如何使用静态代理模式为实际对象添加额外的功能,同时保持原有对象的行为不变。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

代理模式:

代理是基本的设计模式之一,它为你提供额外的或者不同的操作,而插入的用来代理"实际"对象的对象.这些操作通常涉及与"实际"对象的通信,因此代理通常充当着中间人的角色.
静态代理是由程序员创建或工具生成代理类的源码,再编译代理类。所谓静态也就是在程序运行前就已经存在代理类的字节码文件,代理类和委托类的关系在运行前就确定了。
下面是进行演示的代码:
首先是代理类的接口:

//抽象角色  
    public interface ITarget {
    	public void show();
    }

写一个实现类:

//真实角色     目标
public class Target implements ITarget {
	@Override
	public void show() {
		System.out.println("show.....");
	}
}

最后就是代理类了:

//代理角色
public class TargetProxy implements ITarget {
	private ITarget target; // 目标
	public TargetProxy(ITarget target) {
		this.target = target;
	}
	@Override
	public void show() {
		// 在代理中通过目标来调用真实行为
		// 1.例如判断是否有权限调用目标行为
		// 2.进行日志操作
		// 3.性能临近
		target.show();
	}
}

静态代理总结:

1.静态代理主要针对接口,无需考虑实例;
2.代理类可以在无需更改原有类的情况下,增强方法,实现自己的业务逻辑;
3.如果接口增加一个方法,除了所有实现类需要实现这个方法外,所有代理类也需要实现此方法。增加了代码维护的复杂度,这也是静态代理的弊端.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值