代理模式 Idea

作者: 太阳上的雨天 分类: Java,Java,设计模式 发布时间: 2022-02-08 16:46

代理模式 Proxy

为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用

案例

创建一个Subject接口类

package com.learn.Proxy;

public interface Subject {
    void Request();
}

真实主题,也就是被代理的对象

package com.learn.Proxy;

public class RealSubject implements Subject{
    @Override
    public void Request() {
        System.out.println("访问真实主题方法...");
    }
}

代理类

package com.learn.Proxy;

public class Proxy implements Subject{
    private RealSubject realSubject;

    @Override
    public void Request() {
        if (realSubject == null) {
            realSubject = new RealSubject();
        }

        preRequest();
        realSubject.Request();
        postRequest();
    }

    public void preRequest() {
        System.out.println("访问真实主题之前的预处理...");
    }

    public void postRequest() {
        System.out.println("访问真实主题之后的处理...");
    }

}

客户端

package com.learn.Proxy;

public class Client {
    public static void main(String[] args) {
        Proxy proxy = new Proxy();
        proxy.Request();
    }
}

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注