• 代理(Proxy)模式简介


    一、代理(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();
    
        }
    
    }

    结果:

    请求前代理主题自己的操作!
    真实主题实现请求!
    请求后代理主题自己的操作!
  • 相关阅读:
    《算法》C++代码 Floyd
    《算法》C++代码 快速排序
    3-3当访问到一个文件跳转到另一个文件
    分别应用include指令和include动作标识在一个jsp页面中包含一个文件。
    历届试题 蚂蚁感冒
    HDU 2817 A sequence of numbers
    HDU-2018 母牛的故事
    算法提高 复数归一化
    算法提高 十进制数转八进制数
    算法提高 约数个数
  • 原文地址:https://www.cnblogs.com/liunanjava/p/4352329.html
Copyright © 2020-2023  润新知