zoukankan      html  css  js  c++  java
  • 代理模式之静态代理

      一、概述

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

      二、图形描述

      

      

     三、静态代理

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

    /**
     * 目标对象实现的接口
     * @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("后拦截...");
        }
    }

    静态代理的总结

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

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

  • 相关阅读:
    Dell PowerEdge服务器RAID卡驱动下载
    Cent OS yum 安装 Adobe flash player
    如何在安全模式下创建新管理员账户?
    chkdsk 和sfc.exe修复命令
    右下角弹出"Windows-延缓写入失败"或者"xxx-损坏文件 请运行Chkdsk工具"
    VMware NAT模式 Cent OS IP配置
    sublime Text2 2.0.2 build 2221 64位 破解(已测试)
    Windows Server 2008 R2 配置Exchange 2010邮件服务器
    openGL深度缓冲区问题
    glRotatef 转动方向
  • 原文地址:https://www.cnblogs.com/JavaHxm/p/10763274.html
Copyright © 2011-2022 走看看