码迷,mamicode.com
首页 > 其他好文 > 详细

五、 接口延伸出的代理模式

时间:2018-04-19 11:54:31      阅读:120      评论:0      收藏:0      [点我收藏+]

标签:color   nts   子类   AC   span   xxx   png   处理   参考   

示例:

//  主题接口:定义了核心功能
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直接实例化接口子类,使用工厂类完成。

 

五、 接口延伸出的代理模式

标签:color   nts   子类   AC   span   xxx   png   处理   参考   

原文地址:https://www.cnblogs.com/liyue-sqsf/p/8880849.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!