Java设计模式——代理模式介绍

文章目录

      • 代理模式
        • 代理模式解决的问题
        • 代理模式模式角色

代理模式

代理模式(Proxy Pattern)一个类代表另一个类的功能,通过代理对象访问目标对象,可以在目标对象实现的基础上,增强额外的功能。

代理模式解决的问题

在某些情况下,一个客户类不想或者不能直接引用一个委托对象,而代理类对象可以在客户类和委托对象之间起到中介的作用,其特征是代理类和委托类实现相同的接口。

代理模式模式角色

抽象主题(Subject)类:通过接口或抽象类声明真实主题和代理对象实现的业务方法。

真实主题(Real Subject)类:实现了抽象主题中的具体业务,是代理对象所代表的真实对象,是最终要引用的对象。

代理(Proxy)类:提供了与真实主题相同的接口,其内部含有对真实主题的引用,它可以访问、控制或扩展真实主题的功能。

源代码
  抽象对象角色

public abstract class AbstractObject {
    //操作
    public abstract void operation();
}
public class RealObject extends AbstractObject {
    @Override
    public void operation() {
        //一些操作
        System.out.println("一些操作");
    }
}
public class ProxyObject extends AbstractObject{
    RealObject realObject = new RealObject();
    @Override
    public void operation() {
        //调用目标对象之前可以做相关操作
        System.out.println("before");        
        realObject.operation();        
        //调用目标对象之后可以做相关操作
        System.out.println("after");
    }
}
public class Client {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        AbstractObject obj = new ProxyObject();
        obj.operation();
    }

}

你可能感兴趣的:(设计模式)