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

           代理是一种设计模式,提供了对目标对象另一种访问方式。。。可以对其功能进行扩展(符合OCP原则)


     我们先来看静态代理。。(1)静态代理中代理对象必须和目标对象实现统一的接口

    先定义接口类 IStudent

    1 package cn.secol.static_proxy;
    2 
    3 public interface IStudent {
    4     void  learn();
    5 }

    目标对象类StudentImp

     

     1 package cn.secol.static_proxy;
     2 /**
     3  * 目标对象
     4  * @author Administrator
     5  *
     6  */
     7 public class StudentImp implements IStudent {
     8 
     9     @Override
    10     public void learn() {
    11         System.out.println("演示静态代理");
    12     }
    13 
    14 }

     

    代理对象类StudentProxy

     

    package cn.secol.static_proxy;
    /**
     * 代理对象
     * @author Administrator
     *
     */
    public class StudentProxy implements IStudent {
        
        //目标对象的引用
        private StudentImp stu;
        
    
    
        public StudentProxy(StudentImp stu) {
            this.stu = stu;
            
        }
    
        @Override
        public void learn() {
            System.out.println("处理前code...");
            stu.learn();
            System.out.println("处理后code...");
        }
    
    }

     

     

    测试类TestDemo

    package cn.secol.static_proxy;

    import org.junit.Test;

    /**
     * 测试类
     * @author Administrator
     *
     */
    public class TestDemo {
        
        @Test
        public void fun1(){
            StudentProxy proxy = new StudentProxy(new StudentImp());
            proxy.learn();
        }
    }
    运行结果:

    处理前code...
    演示静态代理
    处理后code...

    静态代理的优缺点:
      1.因为代理对象需要与目标对象实现一样的接口 ,所以会造成多出很多代理类(可以用代理工厂改进)

      2.一旦接口添加方法,代理对象和目标对象都要做出改变(违背了OCP原则)

  • 相关阅读:
    grpc xservice 使用
    modsecurity3.0 nginx 安装
    scrapy docker 基本部署使用
    fabio 安装试用&&实际使用的几个问题
    yugabyte cloud native db 基本试用
    coredns 编译模式添加插件
    gradle 项目构建以及发布maven 私服&& docker 私服构建发布
    groovy gradle 构建配置
    groovy && java 混编 gradle 配置
    gradle 构建包含源码配置
  • 原文地址:https://www.cnblogs.com/csong7876/p/7851036.html
Copyright © 2011-2022 走看看