Java代理模式

本文介绍了Java代理模式的基本概念,通过实例展示了如何使用代理模式实现任务委托,例如王五作为张三的代理做蛋炒饭。代理模式的主要意图是控制对对象的访问,提高系统的扩展性和职责清晰性。它在实际应用中,如Windows快捷方式和Spring框架的AOP思想中都有体现。虽然代理模式可能使请求处理速度变慢并增加额外工作,但其带来的好处包括职责分明、高扩展性和智能化等。
摘要由CSDN通过智能技术生成

代理模式

概述:为其他对象提供一种代理以控制对这个对象的访问。
示例
张三想吃蛋炒饭 但是因为各种原因不能自己做饭 所以让王五去做蛋炒饭 即王五做的蛋炒饭张三吃

编写做饭接口 需要被代理事情的类型

public interface Food {
	public void Cook();
}

编写需要被代理的具体事物 做蛋炒饭

public class EggFriedRice implements Food{

	@Override
	public void Cook() {
		// TODO 自动生成的方法存根
		System.out.println("这是需要做的蛋炒饭");
	}
	
}

王五做蛋炒饭 谁来代理(王五)—> 代理什么(做饭) ---->做什么饭(蛋炒饭)

public class WangWu implements Food{

	Food food;
	@Override
	public void Cook() {
		// TODO 自动生成的方法存根
		food.Cook();
	}
	
	public WangWu() {
		System.out.println("王五在做蛋炒饭");
		//做蛋炒饭
		food = new EggFriedRice();
	}

}

张三让王五做蛋炒饭

public class ZhangSan {
	public static void main(String[] args) {
		Food eggF = new WangWu();
		eggF.Cook();
		
	}

}

在这里插入图片描述

代理模式小结

意图:为其他对象提供一种代理以控制对这个对象的访问。
主要解决:在直接访问对象时带来的问题,比如说:要访问的对象在远程的机器上。在面向对象系统中,有些对象由于某些原因(比如对象创建开销很大,或者某些操作需要安全控制,或者需要进程外的访问),直接访问会给使用者或者系统结构带来很多麻烦,我们可以在访问此对象时加上一个对此对象的访问层。
何时使用:想在访问一个类时做一些控制。
如何解决:增加中间层。
关键代码:实现与被代理类组合。
应用场景:
            1、Windows 里面的快捷方式。
            2、spring框架aop面向切面思想。
优缺点:
优点: 1、职责清晰。2、高扩展性。3、智能化。
缺点: 1、由于在客户端和真实主题之间增加了代理对象,因此有些类型的代理模式可能会造成请求的处理速度变慢。2、实现代理模式需要额外的工作,有些代理模式的实现非常复杂。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值