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

代理(Proxy)模式简介

时间:2015-03-21 06:19:09      阅读:122      评论:0      收藏:0      [点我收藏+]

标签:

一、代理(Proxy)模式简介

代理模式是结构型模式。

代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。

代理对象要继承于抽象主题,并控制原对象的引用

二、简单例子

抽象主题类

package proxy;
/*
 * 抽象主题
 */
public abstract class Subject {
/*
 * 请求方法
 */
    abstract public void Request();
}

真实主题类,继承抽象

package proxy;
/*
 * 真实主题
 */
public class RealSubject extends Subject {

    @Override
    public void Request() {
        System.out.println("真实主题实现请求!");

    }

}

代理主题

package proxy;
/*
 * 代理主题
 */
public class ProxySubject extends Subject {
    private RealSubject realSubject;
    @Override
    public void Request() {
        //请求前代理主题自己的操作
        preRequest();
        //判断是否为空
        if(realSubject==null){
            //实例化
            realSubject=new RealSubject();
        }
        //调用真实主题的响应方法
        realSubject.Request();
        //请求后代理主题自己的操作
        postRequest();
    }
    private void preRequest(){
        System.out.println("请求前代理主题自己的操作!");
    }
    
    private void postRequest(){
        System.out.println("请求后代理主题自己的操作!");
    }

}

测试类

package proxy;
/*
 * 代理主题测试类
 */
public class Test {

    public static void main(String[] args) {
        //声明抽象主题,并实例化为代理主题
        Subject subject=new ProxySubject();
        //调用代理主题的响应方法
        subject.Request();

    }

}

结果:

请求前代理主题自己的操作!
真实主题实现请求!
请求后代理主题自己的操作!

 

代理(Proxy)模式简介

标签:

原文地址:http://www.cnblogs.com/liunanjava/p/4352329.html

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