您好,欢迎来到顺达资讯网网站!

全国服务热线:

新闻中心

云南铝单板厂家联系电话(代字繁体字图片)“代”繁体字,

发布时间:2023-06-25 07:56:04 人气:21 来源:铝单板厂家

云南铝单板厂家联系电话(代字繁体字图片)“代”繁体字,

代理模式(Proxy Pattern)是一个使用率非常高的模式,其定义如下:Provide a surrogate or placeholder for another object to control access to it.(为其他对象提供一种代理以控制对这个对象的访问。

)代理模式的通用类图如图12-3所示。

代理模式也叫做委托模式,它是一项基本设计技巧许多其他的模式,如状态模式、策略模式、访问者模式本质上是在更特殊的场合采用了委托模式,而且在日常的应用中,代理模式可以提供非常好的访问控制在一些著名开源软件中也经常见到它的身影,如Struts2的 Form元素映射就采用了代理模式(准确地说是动态代理模式)。

我们先看一下类图中的三个角色的定义:Subject抽象主题角色抽象主题类可以是抽象类也可以是接口,是一个最普通的业务类型定义,无特殊要求RealSubject具体主题角色也叫做被委托角色、被代理角色它才是冤大头,是业务逻辑的具体执行者。

Proxy代理主题角色也叫做委托类、代理类它负责对真实角色的应用,把所有抽象主题类定义的方法限制委托给真实主题角色实现,并且在真实主题角色处理完毕前后做预处理和善后处理工作我们首先来看Subject抽象主题类的通用源码,如代码清单12-6所示。

代码清单12-6抽象主题类

看到这里,大家别惊讶,为什么会出现before和after方法,继续看下去,这是一个“引子”,能够引出一个崭新的编程模式一个代理类可以代理多个被委托者或被代理者,因此一个代理类具体代理哪个真实主题角色,是由场景类决定的。

当然,最简单的情况就是一个主题类和一个代理类,这是最简洁的代理模式在通常情况下,一个接口只需要一个代理类就可以了,具体代理哪个实现类由高层模块来决定,也就是在代理类的构造函数中传递被代理者,例如我们可以在代理类 Proxy中增加如代码清单12-9所示的构造函数。

代码清单12-9代理的构造函数

你要代理谁就产生该代理的实例,然后把被代理者传递进来,该模式在实际的项目应用中比较广泛。摘自:作者秦小波《设计模式之禅》侵权删想要更深层次兴趣性学习可以来北!大!课!工!场

首页 产品 手机 顶部
在线客服
联系方式

热线电话

上班时间

周一到周五

公司电话

二维码
线