• 代理模式之静态代理


      一、概述

      代理是一种模式,提供了对目标对象的间接访问方式,即通过代理访问目标对象。如此便于在目标实现的基础上增加额外的功能操作,前拦截,后拦截等,以满足自身的业务需求,同时代理模式便于扩展目标对象功能的特点也为多人所用。

      二、图形描述

      

      

     三、静态代理

      静态代理的实现比较简单,代理类通过实现与目标对象相同的接口,并在类中维护一个代理对象。通过构造器塞入目标对象,赋值给代理对象,进而执行代理对象实现的接口方法,并实现前拦截,后拦截等所需的业务功能。

    /**
     * 目标对象实现的接口
     * @author aaron
     */
    public interface BussinessInterface {
     
        void execute();
    }
     
    /**
     * 目标对象实现类
     * @author aaron
     */
    public class Bussiness implements BussinessInterface{
     
        @Override
        public void execute() {
            System.out.println("执行业务逻辑...");
        }
    }
     
    /**
     * 代理类,通过实现与目标对象相同的接口
     * 并维护一个代理对象,通过构造器传入实际目标对象并赋值
     * 执行代理对象实现的接口方法,实现对目标对象实现的干预
     * @author aaron
     */
    public class BussinessProxy implements BussinessInterface{
         
        private BussinessInterface bussinessImpl;
         
        public BussinessProxy(BussinessInterface bussinessImpl) {
            this.bussinessImpl = bussinessImpl;
        }
         
        @Override
        public void execute() {
            System.out.println("前拦截...");
            bussinessImpl.execute();
            System.out.println("后拦截...");
        }
    }

    静态代理的总结

      优点:可以做到不对目标对象进行修改的前提下,对目标对象进行功能的扩展和拦截。

      缺点:因为代理对象,需要实现与目标对象一样的接口,会导致代理类十分繁多,不易维护,同时一旦接口增加方法,则目标对象和代理类都需要维护

  • 相关阅读:
    sun.misc.Unsafe
    一个普通Java程序包含哪些线程??
    类加载-类加载器
    类加载-类的生命周期
    类加载-初始化的触发
    Java语法糖
    Java线程池
    Java线程池之ThreadPoolExecutor
    【结构型】- 适配器模式
    数据结构与算法之排序(3)插入排序 ——in dart
  • 原文地址:https://www.cnblogs.com/JavaHxm/p/10763274.html
Copyright © 2020-2023  润新知