简单理解代理模式

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

使用场景:现在需要添加新的业务,而业务类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();

是不是很简单~

原文地址:https://www.cnblogs.com/ouym/p/7499100.html