设计模式 – 代理模式(Proxy Pattern)

内容纲要

代理模式(Proxy Pattern)是一种结构型设计模式,它为其他对象提供一个代理或占位符,以便在访问这些对象时可以控制对它们的访问。代理模式可以用于实现懒加载、访问控制、日志记录等功能。

以下是一个简单的Java实现:

  1. 创建一个主题接口(Subject Interface),表示代理对象和真实对象共同实现的接口:
public interface Subject {
    void request();
}
  1. 创建一个真实主题类(Real Subject),实现主题接口:
public class RealSubject implements Subject {
    @Override
    public void request() {
        System.out.println("Real Subject request.");
    }
}
  1. 创建一个代理类(Proxy),实现主题接口并持有一个真实主题对象的引用:
public class Proxy implements Subject {
    private RealSubject realSubject;

    @Override
    public void request() {
        preRequest();
        if (realSubject == null) {
            realSubject = new RealSubject();
        }
        realSubject.request();
        postRequest();
    }

    private void preRequest() {
        System.out.println("Pre-processing in Proxy.");
    }

    private void postRequest() {
        System.out.println("Post-processing in Proxy.");
    }
}
  1. 使用代理模式创建对象:
public class Main {
    public static void main(String[] args) {
        Subject proxy = new Proxy();
        proxy.request();
    }
}

运行上述代码,你将看到:

Pre-processing in Proxy.
Real Subject request.
Post-processing in Proxy.

代理模式让你可以在不修改原始对象代码的情况下,控制对这些对象的访问。这种模式在需要实现懒加载、访问控制、日志记录等功能时非常有用。代理模式也有多种变体,如虚拟代理、保护代理和远程代理等。

Leave a Comment

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

close
arrow_upward