接口延伸出的代理模式

Posted liyue-sqsf

tags:

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

示例:

//  主题接口:定义了核心功能
interface Subject { 
    public abstract void eat();
}
// 核心主题:实现了主题接口,并且只实现核心功能
class  RealSubject implements Subject { 
    public void eat() {
        System.out.println("核心主题RealSubject要XXXX");
    }
}
// 代理主题:实现了主题接口,完成核心主题的辅助性工作
class ProxySubject implements Subject { 
    Subject subject;
    public ProxySubject(Subject subject) {
        this.subject = subject;
    }
    
    public void prepare() { // 代理主题处理的辅助性操作
        System.out.println("代理主题准备就绪!");
    }

    public void  eat() { // 核心主题要做的事
        this.subject.eat();
    }

    public void destory() { // 代理主题处理的辅助性操作
        System.out.println("代理主题善后完毕!");
    }
}
// 测试类
class TestProxy { 
    public static void main(String[] args) {
        Subject realSubject = new RealSubject(); // 核心主题
        Subject proxySubject = new ProxySubject(realSubject); // 代理主题
        proxySubject.prepare();
        proxySubject.eat();
        proxySubject.destory();
    }
}

代理设计模式:
  有一个主题操作接口(可能有多种方法),核心业务主题只完成核心功能,比如:吃饭,
而代理主题负责完成所有与核心主题有关的辅助性操作。

示例图:

  技术分享图片

参考:
  · 自己写的接口,绝对不要使用关键字new直接实例化接口子类,使用工厂类完成。

 




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

设计模式之代理模式

java代码实现设计模式之代理模式

代理模式之静态代理实现代码

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

静态代理模式代码演示

设计模式----代理模式