您所在位置: 网站首页 / 文档列表 / 代理连锁 / 文档详情
代理模式的核心思想与应用.docx 立即下载
上传人:是笛****加盟 上传时间:2024-09-04 格式:DOCX 页数:10 大小: 金币:10 举报 版权申诉
预览加载中,请您耐心等待几秒...

代理模式的核心思想与应用.docx

代理模式的核心思想与应用.docx

预览

在线预览结束,喜欢就下载吧,查找使用更方便

10 金币

下载文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第PAGE10页共NUMPAGES10页第PAGE\*MERGEFORMAT10页共NUMPAGES\*MERGEFORMAT10页12.3代理模式(Proxy)本节从以下几个方面来详细讲解代理模式:Ø代理模式的核心思想。Ø何时使用代理模式。ØJava中的应用—Java动态代理机制。12.3.1代理模式的核心思想代理模式就是给某一个对象提供一个代理对象,并由代理对象控制对源对象的引用。就是一个人或者一个机构代替另一个人或者另一个机构去采取一些行动。代理模式中的代理者就好比中介机构,它提供了对被代理对象的一切事物。代理模式与适配器模式和装饰器模式相似,它们之间的区别是:Ø适配器模式是将一个类A转换成另一个类B。Ø装饰器模式是为一个类A增加新的功能,从而变成类B。Ø代理模式是为一个类A转换操作类B。它们三者的限制条件层层递进,递进关系如图12-16所示。图12-16代理模式递进关系代理模式中的“代理”要想实现代理任务,就必须与被代理的“对象”使用共同的接口。所以自然而然你会想到在Java中使用一个抽象类或者接口(推荐)来实现这个共同的接口。于是代理模式就有3个角色组成。Ø被代理对象的接口Sourcable:声明了代理对象和代理者的共同接口。Ø被代理对象Source:定义真实的对象。Ø代理者Proxy:内部包含对代理对象的引用,并且提供与代理对象角色相同的接口。使用类图来表示下三者间的关系如图12-17所示。图12-17代理模式结构图下面来看具体的实现。(1)Sourcable类的源代码如程序12-28所示,其定义了一个接口函数operation()。程序12-28源接口Sourcable.javapackagestructure.proxy;/***@authorliuzhongbing*源接口*/publicinterfaceSourcable{publicvoidoperation();}(2)Source.java是Sourcable.java的一个实现,其函数operation()负责往控制台输出一个字符串:原始类的方法。其源代码如程序12-29所示。程序12-29源类Source.javapackagestructure.proxy;/***@authorliuzhongbing*源类*/publicclassSourceimplementsSourcable{publicvoidoperation(){System.out.println("原始类的方法");}}(3)代理类Proxy.java采用了典型的对象适配器模式,它首先拥有一个Sourcable对象source,注意,不同的是该对象在构造函数中进行初始化,不能够从外部传入。然后它实现了Sourcable.java接口,以期保持与source同样的接口,并在重写的operation()函数中调用source的operation()函数,在调用前后可以调用自己的函数。其源代码如程序12-30所示。程序12-30代理类Proxy.javapackagestructure.proxy;/***@authorliuzhongbing*代理模式*/publicclassProxyimplementsSourcable{privateSourcesource;/***创建代理对象*/publicProxy(){super();this.source=newSource();}/***调用代理对象的方法*/publicvoidoperation(){before();source.operation();after();}publicvoidbefore(){System.out.println("代理前");}publicvoidafter(){System.out.println("代理后");}}这时,我们就可以直接通过Proxy来操作Source类。如程序12-31所示,首先需要创建一个代理对象proxy,然后直接调用该对象的operation()方法,即可实现对source的调用。程序12-31测试类Client.javapackagestructure.proxy;/***@authorliuzhongbing*/publicclassClient{publicstaticvoidmain(String[]args){//创建代理对象Sourcableproxy=newProxy();/
单篇购买
VIP会员(1亿+VIP文档免费下)

扫码即表示接受《下载须知》

代理模式的核心思想与应用

文档大小:

限时特价:扫码查看

• 请登录后再进行扫码购买
• 使用微信/支付宝扫码注册及付费下载,详阅 用户协议 隐私政策
• 如已在其他页面进行付款,请刷新当前页面重试
• 付费购买成功后,此文档可永久免费下载
年会员
99.0
¥199.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用

手机号注册 用户名注册
我已阅读并接受《用户协议》《隐私政策》
已有账号?立即登录
我已阅读并接受《用户协议》《隐私政策》
已有账号?立即登录
登录
手机号登录 微信扫码登录
微信扫一扫登录 账号密码登录

首次登录需关注“豆柴文库”公众号

新用户注册
VIP会员(1亿+VIP文档免费下)
年会员
99.0
¥199.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用