代理设计模式

ProxyExpress_2012元旦版 立即下载

代理模式

生活场景

在电商高速发展的今天,快递的数量十分庞大,甚至出现了快递代理行业,简单的说就是快递的主人没有时间收快递,会指定一个快递的代收点,然后有时间的时候再过去取,下面使用代码对这个场景进行简单的描述:

package com.cloud.model1;
public class Demo1 {
	public static void main(String[] args) {
		/*自己收快递的测试方式*/
		GetExpress getExpress = new GetExpress();
		getExpress.sureInfo();
		getExpress.signName("张三");
		/*代收快递的测试方式*/
		ExpressAct getUser = new GetExpress();
		ExpressAct getProxy = new ProxyExpress(getUser);
		getProxy.sureInfo();
		getProxy.signName("李四");
	}
}
/**   
 * @ClassName: ExpressAct
 * @Description: 接收一个快递的动作接口:确认信息,签名
 * @author 午_夜
 * @date 2016-8-13 下午2:16:21
 */
interface ExpressAct{
	public void sureInfo();
	public void signName(String name);
}
/**   
 * @ClassName: GetExpress
 * @Description: 定义一个类接收快递:自己去拿快递
 * @author 午_夜
 * @date 2016-8-13 下午2:18:40
 */
class GetExpress implements ExpressAct{
	@Override
	public void sureInfo() {
		System.out.println("请确认你的个人信息!");
	}
	@Override
	public void signName(String name) {
		System.out.println("你的名字是:"+name);
	}
}
/**   
 * @ClassName: ProxyExpress
 * @Description: 定义一个类接收快递:找人代领快递
 * @author 午_夜
 * @date 2016-8-13 下午2:27:38
 */
class ProxyExpress implements ExpressAct{
	private ExpressAct expressAct=null;
	public ProxyExpress(ExpressAct expressAct){
		this.expressAct = expressAct;
	}
	@Override
	public void sureInfo() {
		this.expressAct.sureInfo();
	}
	@Override
	public void signName(String name) {
		this.expressAct.signName(name);
	}
}

代理设计模式

概念描述:

代理模式是对象的结构模式。代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。所谓代理,就是一个人或者机构代表另一个人或者机构采取行动。在一些情况下,一个客户不想或者不能够直接引用一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。

 

图解:


在代理模式中的角色:

抽象对象角色:声明了目标对象和代理对象的共同接口,这样一来在任何可以使用目标对象的地方都可以使用代理对象。

目标对象角色:定义了代理对象所代表的目标对象。

代理对象角色:代理对象内部含有目标对象的引用,从而可以在任何时候操作目标对象;代理对象提供一个与目标对象相同的接口,以便可以在任何时候替代目标对象。代理对象通常在客户端调用传递给目标对象之前或之后,执行某个操作,而不是单纯地将调用传递给目标对象。

公共代码抽取

package com.cloud.model1;
public class Demo2 {
	public static void main(String[] args) {
		AbstractObject object = new ProxyObject();
		object.operation();
	}
}
/**   
 * @ClassName: AbstractObject
 * @Description: 抽象对象角色
 * @author 午_夜
 * @date 2016-8-13 下午2:58:11
 */
abstract class AbstractObject{
	public abstract void operation();
}
/**   
 * @ClassName: RealObject
 * @Description: 目标对象角色
 * @author 午_夜
 * @date 2016-8-13 下午2:59:45
 */
class RealObject extends AbstractObject{
	@Override
	public void operation() {
		System.out.println("目标对象方法被执行...");
	}
}
/**   
 * @ClassName: ProxyObject
 * @Description: 代理对象角色
 * @author 午_夜
 * @date 2016-8-13 下午3:03:01
 */
class ProxyObject extends AbstractObject{
	RealObject realObject = new RealObject();
	@Override
	public void operation() {
		System.out.println("操作之前...");
		realObject.operation();
		System.out.println("操作之后...");
	}
}

应用分析

1.真实角色只要实现好业务逻辑,不用关心其他事物

2.具有很强的扩展性

3.spring中AOP的设计就是典型的代理模式

Dify 进阶指南 | 5步打造智能JSON转换器(Excel数据预处理神器) 本文详细介绍了如何利用Dify平台的Chatflow功能,通过5个步骤构建一个智能JSON转换器,专门用于Excel数据预处理。该工具能够根据用户指令自动解析Excel表格,执行数据清洗、聚合计算,并精准输出定制化的JSON格式,极大提升前端开发、数据分析与测试工作的效率。 阅读详情

相关推荐

WD西部数据2TB,2.5寸移动硬盘,因为磁头坏了,长时间通电导致划片划伤,维修过程通过反复更换磁头

WD西部数据2TB,2.5寸移动硬盘,因为磁头坏了,长时间通电导致划片划伤,维修过程通过反复更换磁头,才能利用专业设备,里面找到,镜像,把内容数据恢复出来。 1.说一下经历,借用的别人移动硬盘,去帮别人维修,拷数据出来,别人的文件,数据比较多,且复杂,而且是在PE系统,接口什么的是2.0,没有很好的思考就全选复制拷贝了; 2,拷贝的过程,极其慢,文件多,且文件有损坏,移动硬盘一直处于通电的状态,大概从下午,两点多开始100多G的数据,一直卡住,到,晚上7 。8点拷完还是没拷完。打开的时候就已经,就一直

weixin_43766920的博客 4301

设计模式第4讲——代理模式(Proxy)

代理模式属于结构型设计模式。一、什么是代理模式二、分类 三、特点 四、应用场景4.1 生活场景4.2 Java场景 五、代码实现5.0 代码结构5.1 静态代理5.2 JDK动态代理5.3 Cglib代理 六、总结

让~学习~成为一种习惯(橡 皮 人の技术博客) 8978

SAP开发实战:用FI_DOCUMENT_CHANGE BAPI批量修改FB03凭证抬头和行项目文本(附完整ABAP代码)

本文详细介绍了如何使用SAP的FI_DOCUMENT_CHANGE BAPI批量修改FB03凭证抬头和行项目文本,提供完整的ABAP代码实现方案。通过该BAPI,开发者可以高效完成财务凭证的批量修改,确保数据一致性和审计合规性,显著提升SAP财务模块的运维效率。

weixin_29224589的博客 381

设计模式——代理模式

静态代理、JDK动态代理、Cglib 代理

种一棵树最好的时间是十年前,其次是现在 2612

HUMAnN数据库国内备份下载源(转自刘永鑫博士github)

百度云链接 R语言常用包合集 Windows 10版4.0.x:链接:https://pan.baidu.com/s/1JFwLP2SonK1howD5MNgNYg 提取码:l08k Windows 10版3.6.x:链接:https://pan.baidu.com/s/1h-qR2lmlaMgR4M7VbgtAFg 提取码:s5fi 下载后解压至当前目录,可获得3.6/4.0目录,剪切并替换文档 - R - win-library - 3.6/4.0 目录即可 扩增子数据库 宏基因组数据库 HUM.

zlabx的博客 3242

使用STM32F103C8T6控制舵机丝滑运转附代码

使用STM32F103C8T6控制舵机丝滑运转原理和案例,附代码。

m0_63566592的博客 4237

23种设计模式之代理模式

代理模式属于结构型设计模式,其核心思想是为其他对象提供一种代理以控制对这个对象的访问。代理对象在客户端和目标对象之间起到中介的作用,并可以在不改变客户端代码的情况下增强或控制对象的访问。

JAVA开发区的博客 3765

抖音用户主页视频数据爬虫详解(点赞,收藏,分享等)

的包中有个max_cursor参数,请求载荷中也有一个这样的参数,每次请求的数据中max_cursor是下一个请求的载荷,,,同时has_more为1时候代表还能请求,0为不能请求,我们做如下判断。最后发现cookie很容易过期,批量爬取有点困难,,,,我们采用drissoinpage进行自动化获取。首先进行抓包分析,,,随便找个主页,f12,关键词搜索,发现这个包是以post开头。请你第一次运行先按0,进行登录(或者触发反爬的时候),登录完成之后,按1进行爬取,完整代码请在知识星球。

m0_74823507的博客 3429

设计模式 - 代理模式

代理模式通过中介对象控制对真实对象的访问,常见于安全防护、远程调用与延迟加载。静态代理需手动编写代理类,动态代理则利用JDK或CGLIB在运行时生成代理,广泛应用于Spring AOP中,实现日志、事务等横切关注点的统一处理,提升代码可维护性与复用性。

Hvitur的博客 539

【腾讯小龙虾WorkBuddy专栏01】初识WorkBuddy!定位、核心优势、功能界面全解析

【腾讯小龙虾WorkBuddy专栏01】初识WorkBuddy!定位、核心优势、功能界面全解析

AI人人懂 3822

1. 动手开发第一个 SAP CDS View

在开始学习前,大家需要根据这篇文章介绍的步骤,在自己本地电脑上,把 ABAP Development Tool 安装好。右键单击这个添加好的 ABAP 开发包,选择新建一个 ABAP Repository Object,类型就选择。,就可以像在 SAPGUI 里使用 SE16 那样,查看这个 CDS View 的内容。笔者下一篇文章,会详细介绍我们创建的第一个 CDS View 的每一行代码的详细含义。从本文开始,正式进入 CDS View 开发的学习。的条件,然后点击 Run 重新执行,得到结果。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1271

08【代理设计模式】_代理设计模式类图

结构型模式(Structural Pattern)关注类和对象的组合。其描述如何将类或者对象结合在一起形成更大的结构,就像搭积木,可以通过简单积木的组合形成复杂的、功能更为强大的结构。1)类结构型模式:类结构型模式关心类的组合,由多个类可以组合成一个更大的系统,在类结构型模式中一般只存在继承和实现关系。2)对象结构型模式:对象结构型模式关心类与对象的组合,通过关联关系使得在一个类中定义另一个类的实例对象,然后通过该对象调用其方法。

2401_89191522的博客 1073

3D iToF深度分辨率测量

本文展示了RGB-D传感器在三维测量中的高精度表现。标靶深度图显示其具备清晰、低噪、无干扰的特性,点云数据完整度高且轮廓分明。该技术已成功应用于物流(体积测量误差<1%)、工业(高反光部件装配检测)和农业(果蔬成熟度分级)等领域,验证了其硬件和算法的可靠性,能够满足不同场景下的三维测量需求。

dream it possible 252

设计模式之代理设计模式

JDK动态代理

m0_64681527的博客 1704

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Proxy Design Pattern 代理设计模式

代理设计模式,这个模式很多用于服务器客户端之类的,上网也经常使用代理之类的,想起来感觉是很复杂的,不过这个设置模式本身是很简单的。 就是一个类调用另外一个类的函数,客户调用的是一个类,而实际的工作是由另外一个类做的。 体现这个设计模式的代码: #include class RealObj { public: virtual void handleReq() = 0; };

靖空间 1488

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

设计模式之代理模式

代理模式(Proxy Pattern)是一种结构型设计模式,旨在为其他对象提供一种代理以控制对该对象的访问。它通过引入代理类来控制对目标对象的访问,代理对象与客户端进行交互,并根据具体需求对目标对象进行额外的功能扩展、权限控制、懒加载等。代理模式的核心思想是通过一个中介对象(代理对象)来替代直接访问目标对象,从而增强或改变目标对象的行为。@Override。

道可道非常道 1826

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

设计模式---代理模式(DesignPattern_Proxy)

摘录自:设计模式与游戏完美开发 十年磨一剑,作者将设计模式理论巧妙地融入到实践中,以一个游戏的完整实现呈现设计模式的应用及经验的传承 《轩辕剑》之父——蔡明宏、资深游戏制作人——李佳泽、Product Evangelist at Unity Technologies——Kelvin Lo、信仁软件设计创办人—— 赖信仁、资深3D游戏美术——刘明恺 联合推荐全书采用了整合...

su9257的博客 139

《设计模式》代理模式

定义代理模式就是为被访问的目标对象提供一个代理,此时代理对象充当访问对象和目标对象之间的媒介,通过代理对象实现对目标对象的访问。被代理的对象可以是远程对象、创建开销大的对象以及需要安全控制的对象,Java 中的代理按照代理的生成时机不同分为静态代理和动态代理,静态代理就是在编译期就生成代理对象,而动态代理是在 Java 运行时动态生成,而动态代理又分为 JDK 动态代理和 Cglib 动态代理两种。代理模式的角色组成抽象主题类(Subject):通过接口或抽象类声明真实主题和代理对象实现的业务方法。

华仔仔的博客 4001

十七、代理设计模式

1. 代理设计模式介绍代理设计模式,从名字中我们就能知道其大致意思。我们生活中有很多“代理”,比如,租房中介,海外代购等。就是一种本来需要A做的事,让B去代做。 定义:为其他对象提供一种代理以控制对这个对象的访问。2. 代理设计模式使用场景 当我们无法直接访问某一个对象时,可以通过一个代理对象间接访问。通常委托对象和代理对象有着相同的接口。 (1)、远程代理,为一个对象在不同的地址空间提供局部代表

sp不会玩ps 1490
上一篇: Java中对象的初始化和回收
下一篇: Jquery、css制作炫酷导航栏
午-夜
博客等级 码龄12年 95粉丝 133原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值