在Java中,代理模式可以通过创建一个代理类来实现。代理类与被代理类实现相同的接口,并持有一个对被代理类的引用。通过代理类的方法调用,可以在调用之前或之后添加额外的逻辑或功能。
下面是一个简单的例子来说明代理模式在Java中的实现:
// 定义一个接口 interface Subject { void doSomething(); } // 创建被代理类 class RealSubject implements Subject { @Override public void doSomething() { System.out.println("RealSubject is doing something."); } } // 创建代理类 class Proxy implements Subject { private RealSubject realSubject; public Proxy() { this.realSubject = new RealSubject(); } @Override public void doSomething() { System.out.println("Before doing something."); realSubject.doSomething(); System.out.println("After doing something."); } } // 使用代理类 public class ProxyPatternDemo { public static void main(String[] args) { Proxy proxy = new Proxy(); proxy.doSomething(); } }
在上面的例子中,RealSubject
是被代理类,Proxy
是代理类。代理类实现了Subject
接口,并持有RealSubject
的引用。在代理类的doSomething
方法中,可以在调用RealSubject
的doSomething
方法之前或之后添加额外的逻辑。
通过使用代理模式,可以实现对被代理类的访问控制、延迟加载、缓存等功能。