设计模式之代理模式

代理模式概述

代理模式是java开发中使用较多的一种设计模式,代理设计就是为其他对象提供一种代理以控制对这个对象的访问。

设计模式之代理模式

  理论概述讲的比较抽象,在这里举个栗子:假设你工作了,要组一个房子,但是你有没有空去找,然后你就找到了租房中介,你只需要把你要找的类型告诉中介,中介就会帮你找到一些,推送给你你再从中挑选。这差不多就是一个代理模式,还有明星与经纪人也是一种代理关系。这里的中介就是一个代理类,你就是被代理类,你要找房子的这件事就是一个接口。

  理论还是比较抽象,下面是一段简单的代码示例:

package proxy;

/**
 *     接口的应用:
 * 1.代理模式的简单示例;
 *     
 * @author Gary
 * @time 2019年8月9日
 */

public class ProxyTest {

    public static void main(String[] args) {
        
        //    创建一个用户对象并实例化
        Server server = new Server();
        
        //    创建一个代理人
        ProxyServer proxy = new ProxyServer(server);
        proxy.surf();
    }
}

//    定义一个接口
interface NetWork {
    
    public void surf();
}

//被代理类
class Server implements NetWork{
    
    @Override
    public void surf() {
        System.out.println("真实用户联网\t");
    }
}

//代理类
class ProxyServer implements NetWork {
    
    //    声明一个接口对象
    private NetWork work;
    
    //    构造方法,可以传入一个真实的用户
    public ProxyServer(NetWork work) {
        this.work = work;
    }
    
    public void check() {
        System.out.println("联网前的检查工作\t");
    }
    
    //1、代理类中的接口实现方法不是自己调用,而是调用一个接口对象,采用接口回调的方式让真实用户调用接口的方法
    @Override
    public void surf() {
        check();
        work.surf();
    }
}

注:此处是代理模式的简单理解,代理模式在后续的java高级学习中在更深入的讲解。

上一篇:如何使用C使用SURF OpenCV找到最佳匹配?


下一篇:android – 为什么基于flann的描述符匹配器每次都匹配不同的关键点?