溫馨提示×

代理模式在Java中如何實現(xiàn)

小樊
83
2024-08-18 21:55:38
欄目: 編程語言

在Java中,代理模式可以通過創(chuàng)建一個代理類來實現(xiàn)。代理類與被代理類實現(xiàn)相同的接口,并持有一個對被代理類的引用。通過代理類的方法調(diào)用,可以在調(diào)用之前或之后添加額外的邏輯或功能。

下面是一個簡單的例子來說明代理模式在Java中的實現(xiàn):

// 定義一個接口
interface Subject {
    void doSomething();
}

// 創(chuàng)建被代理類
class RealSubject implements Subject {
    @Override
    public void doSomething() {
        System.out.println("RealSubject is doing something.");
    }
}

// 創(chuàng)建代理類
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是代理類。代理類實現(xiàn)了Subject接口,并持有RealSubject的引用。在代理類的doSomething方法中,可以在調(diào)用RealSubjectdoSomething方法之前或之后添加額外的邏輯。

通過使用代理模式,可以實現(xiàn)對被代理類的訪問控制、延遲加載、緩存等功能。

0