设计模式-结构型模式-代理模式

代理模式(Proxy),为其他对象提供一种代理以控制对这个对象的访问。DP

复制代码
// 定义接口
interface Subject {
    void request();
}

// 真实主题对象
class RealSubject implements Subject {
    @Override
    public void request() {
        System.out.println("RealSubject is requested.");
    }
}

// 代理主题对象
class ProxySubject implements Subject {
    private RealSubject realSubject;

    public ProxySubject() {
        // 可以在这里进行初始化操作,如权限验证、日志记录等
    }

    @Override
    public void request() {
        // 在调用真实对象前可以添加一些操作
        System.out.println("ProxySubject is requested.");
        if (realSubject == null) {
            realSubject = new RealSubject();
        }
        // 调用真实对象的方法
        realSubject.request();
        // 在调用真实对象后可以添加一些操作
        System.out.println("After RealSubject is requested.");
    }
}

// 客户端代码
public class ProxyPatternDemo {
    public static void main(String[] args) {
        Subject subject = new ProxySubject();
        subject.request();
    }
}
相关推荐
workflower20 小时前
具身智能研究对象:物理交互中的智能行为
设计模式·动态规划·软件工程·软件构建·scrum
折哥的程序人生 · 物流技术专研1 天前
Java 23 种设计模式:从踩坑到精通 | 抽象工厂 —— 支付/收款如何成套创建?跨平台 UI 如何一键换肤?
java·开发语言·后端·设计模式
老码观察1 天前
设计模式实战解读(八):代理模式——控制访问的隐形中间层
设计模式·代理模式
我爱cope1 天前
【Agent智能体12 | 反思设计模式-使用外部反馈】
人工智能·设计模式·语言模型·职场和发展
geovindu1 天前
python: Bounded Parallelism Pattern
开发语言·python·设计模式·有界并行模式
我爱cope1 天前
【Agent智能体11 | 反思设计模式-评估反射的影响的方法】
人工智能·设计模式·语言模型·职场和发展
nnsix1 天前
设计模式 - 迭代器模式 笔记
笔记·设计模式·迭代器模式
geovindu1 天前
go: Bounded Parallelism Pattern
开发语言·后端·设计模式·golang·有界并行模式
IT策士1 天前
第 23篇 k8s之Pod:多容器 Pod 与设计模式(Sidecar 等)
设计模式·容器·kubernetes
青山师2 天前
动态规划算法深度解析:从状态转移方程到工业级优化
数据结构·算法·面试·动态规划·代理模式·java面试