代理模式(Proxy Pattern)

代理模式

代理模式(Proxy Pattern)也叫委托模式,是一个使用率非常高的模式。

定义:

为其他对象提供一种代理以控制对这个对象的访问。

代理模式是一项基本的设计技巧,许多其他的模式,如状态模式、策略模式、访问者模式本质上也采用了代理模式。

代理模式提供以下3个角色。

■ 抽象主题(Subject)角色:该角色是真实主题和代理主题的共同接口,以便在任何可以使用真实主题的地方都可以使用代理主题。

■ 代理主题(Proxy Subject)角色:也叫做委托类、代理类,该角色负责控制对真实主题的引用,负责在需要的时候创建或删除真实主题对象,并且在真实主题角色处理完毕前后做预处理和善后处理工作。

■ 真实主题(Real Subject)角色:该角色也叫做被委托角色、被代理角色,是业务逻辑的具体执行者。

Subject: 定义 RealSubject 对外的接⼝,且这些接⼝必须被 Proxy 实现,这样外部调⽤ proxy 的接⼝最终都被转化为对 realsubject 的调⽤。

java 复制代码
public interface Subject {

    // 定义一个请求方法
    public void request();
}

RealSubject: 真正的⽬标对象。

java 复制代码
public class RealSubject implements Subject {
    @Override
    public void request() {
        // 逻辑
    }
}

Proxy: ⽬标对象的代理,负责控制和管理⽬标对象,并间接地传递外部对⽬标对象的访问。

java 复制代码
public class ProxySubject implements Subject {
    private Subject subject;

    public ProxySubject(Subject subject) {
        this.subject = subject;
    }

    // 实现请求方法
    public void request() {
        this.beforeRequest();
        subject.request();
        this.afterRequest();
    }

    private void beforeRequest() {
        // 预处理
    }

    // 请求后的操作
    private void afterRequest() {
        // 善后处理
    }
}
相关推荐
小王不爱笑1323 天前
Java 代理模式与 AOP 底层
java·开发语言·代理模式
青主创享阁4 天前
玄晶引擎XgenCore Works V2.8.1升级解析 技术迭代赋能场景 代理模式全新落地
大数据·人工智能·代理模式
阿猿收手吧!5 天前
【C++】建造者与代理模式实战解析
开发语言·c++·代理模式
Real-Staok6 天前
(集合)C / C++ 设计模式综合
单例模式·设计模式·代理模式
sg_knight6 天前
设计模式实战:代理模式(Proxy)
python·设计模式·代理模式·proxy
小江的记录本7 天前
【AOP】AOP-面向切面编程 (系统性知识体系全解)
java·前端·后端·python·网络协议·青少年编程·代理模式
学嵌入式的小杨同学7 天前
STM32 进阶封神之路(五):库函数移植全解析 —— 从底层原理到移植实操(含环境适配 + 报错解决)
vscode·单片机·嵌入式硬件·代理模式·智能硬件·pcb工艺·嵌入式实时数据库
weixin_403810138 天前
EasyClick iOS USB版本蓝牙点击坐标代码
ios·自动化·代理模式
蜜獾云8 天前
设计模式之代理模式:本地接口代理远程接口的调用
设计模式·系统安全·代理模式
`Jay8 天前
高并发数据采集:隧道代理池架构设计与实现
爬虫·python·学习·golang·代理模式