您的位置:首页 > 编程语言 > Java开发

《第一行代码Java》接口实现代理设计模式(Proxy)笔记与代码

2018-02-06 12:44 831 查看
   .接口的应用 —— 代理设计模式(Proxy)

区分:

  一个接口有至少有两个子类:一个是真实对象,一个是代理对象(代理模式)

一个接口一个子类(工厂模式)

Ø代理设计也是在java开发中使用较多的一种设计模式,所谓的代理设计就是指一个代理主题来操作真实主题,真实主题执行具体的业务操作,而代理主题负责其他相关业务的处理,就好比在生活中经常使用到的代理上网那样,客户通过网络代理连接网络,由代理服务器完成用户权限,访问限制等与上网操作相关的操作

代理模式的核心精髓在于有一个主题操作接口(可能有多种方法),核心业务主题只完成核心功能

代理主题完成所有与核心主题相关的辅助性操作

package org.java.factory;

/**
 *
 * @author coder
 *
 */

interface Network{        // 定义Network接口
    public void browse() ;    // 定义浏览的抽象方法
}
class Real implements Network{    // 真实的上网操作
    public void browse(){        // 覆写抽象方法
        System.out.println("上网浏览信息 (真实实现)") ;}
}
class Proxy implements Network{    // 代理上网
    private Network network ;
    public Proxy(Network network){// 设置代理的真实操作
        this.network = network ;    // 设置代理的子类
    }
    public void check(){        // 与具体上网相关的操作
        System.out.println("检查用户是否合法 (代理实现)");
    }
    public void browse(){
        this.check() ;// 可以同时调用多个与具体业务相关的操作
        this.network.browse() ;    // 调用真实上网操作
    }
}
public class ProxyTest {
    public static void main(String args[]){
        Network net = null ;    // 定义接口对象
        net = new Proxy(new Real()) ;// 实例化代理,同时传入代理的真实操作
        net.browse() ;// 客户只关心上网浏览一个功能
    }
}
/*检查用户是否合法 (代理实现)
上网浏览信息 (真实实现)
*/

                                         
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: