简单理解代理模式

Posted OUYM

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了简单理解代理模式相关的知识,希望对你有一定的参考价值。

必备元素:一个接口,两个类(代理类和被代理类)。被代理类可以理解为业务类。

使用场景:现在需要添加新的业务,而业务类A现有的功能无法满,又不想改动A(可能是改动代价太大等原因),那么需要一个代理类B去帮A做。

如何使用:代理类B需要持有被代理类A的引用,为什么需要一个接口呢?因为A和B都需要实现这个接口,这样他们才会有共同的方法。

举例(伪代码)

接口

interface Student {

     public void study();

}

学生A学习高数

Class StudentA implement Student {

    public void study(){

        学习高数;

    }

}

新的需求:学生A需要学习英语~

代理类

Class ProxyA implement Student {

    StudentA studentA;

    public void study(){

        studentA.study();

        学习英语;

    }

}

使用Client

Student student = new StudentA();

student.study();

 

是不是很简单~

以上是关于简单理解代理模式的主要内容,如果未能解决你的问题,请参考以下文章

动态代理的基本理解与基本使用

JDK动态代理的简单理解

AOP 理解

[jvm解析系列][十四]动态代理和装饰模式,带你看源码深入理解装饰模式和动态代理的区别。

Java中的代理模式

深入理解设计模式-代理模式(静态代理动态代理jdk和cglib)