zoukankan      html  css  js  c++  java
  • 代理(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();
    
        }
    
    }

    结果:

    请求前代理主题自己的操作!
    真实主题实现请求!
    请求后代理主题自己的操作!
  • 相关阅读:
    freertos学习
    开源好用的一些库
    一些链接
    电子书链接
    C#:文件的输入与输出(转载20)
    C# 特性(Attribute 转载19)
    C#:异常处理(转载18)
    C#:正则表达式 (转载17)
    C#:预处理器指令(转载16)
    C#:接口和命名空间(Interface和NameSpace 转载15)
  • 原文地址:https://www.cnblogs.com/liunanjava/p/4352329.html
Copyright © 2011-2022 走看看