IT评测·应用市场-qidao123.com
标题:
署理模式
[打印本页]
作者:
愛在花開的季節
时间:
2024-12-11 22:39
标题:
署理模式
署理(Proxy)模式属于
结构型
模式的一种。署理模式为其他对象提供一种署理以
控制
对这个对象的
访问
。
Java内置的RMI机制就是一个
远程署理
模式。JDBC的连接池返回的JDBC连接(Connection对象)是一个
虚署理
,到实行JDBC查询或更新使用时,才真正创建连接。用署理对象控制对原始对象的访问,是
保护署理
,比如我们常用的鉴权。
署理模式和装饰者模式有些类似。装饰者模式让调用者自己创建核心类,然后组合各种功能。署理模式不会自己创建再组合,署理模式让调用者以为获取到的是核心类接口,但实际上是署理类。
现实生活中,信用卡是银行账户的署理, 银行账户则是一大堆现金的署理。
署理模式通过封装一个已有接口,让调用方在不改变任何代码的条件下
增强
某些功能(例如,鉴权、连接池复用等)。
署理模式通常有以下组成部分:
服务接口:定义了服务类和署理对象的公共接口。客户端通过此接口与署理对象和真实对象交互。
服务类:实现了服务接口,是真正处置惩罚业务逻辑的对象。
署理对象:实现了服务接口,持有服务类的引用,控制对服务类的访问。伪装成服务对象。
客户端:使用署理对象,跟服务进行交互。
延迟创建真实对象示例。
1、服务接口
public interface Subject {
void request();
}
复制代码
2、服务类
public class RealSubject implements Subject {
@Override
public void request() {
System.out.println("RealSubject: Handling request.");
}
}
复制代码
3、署理类
public class Proxy implements Subject {
private RealSubject realSubject;
@Override
public void request() {
if (realSubject == null) {
realSubject = new RealSubject(); // 延迟创建真实对象
}
System.out.println("Proxy: Delegating request to RealSubject.");
realSubject.request(); // 转发请求给真实对象
}
}
复制代码
4、客户端
public class Client {
public static void main(String[] args) {
Subject proxy = new Proxy(); // 客户端通过代理对象访问
proxy.request(); // 代理对象处理请求
}
}
复制代码
署理模式的
优缺点。
优点:
解耦
:客户端与真实对象解耦,客户端不须要知道具体的实现细节。
增强功能
:署理可以为真实对象增加额外的功能,比如日志记录、性能监控等。
缺点:
增加系统复杂性
:引入署理类会增加系统的复杂性。
性能问题
:署理类可能会影响性能,尤其是在每次访问都须要颠末署理的环境下。
结构型模式差不多了,接下来我们要开始行为型模式了。
这个世界多得是为了生活而拼尽全力的人。-- 烟沙九洲
◀ ◀ ◀ ◀
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 IT评测·应用市场-qidao123.com (https://dis.qidao123.com/)
Powered by Discuz! X3.4