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

    结果:

    请求前代理主题自己的操作!
    真实主题实现请求!
    请求后代理主题自己的操作!
  • 相关阅读:
    如何正确设置数据库连接池的大小
    spring生命周期
    Spring高级进阶:BeanFactoryPostProcessor
    Spring Bean的生命周期(非常详细)
    表达式求值相关算法
    golang 命令行参数解析 hflag
    golang 标准命令行解析库 flag
    docker consul 环境搭建
    docker etcd 环境搭建
    mysql 事务
  • 原文地址:https://www.cnblogs.com/liunanjava/p/4352329.html
Copyright © 2020-2023  润新知