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

     

     

    静态代理

     静态代理和JDK代理一样都是通过实现接口的方式实现代理模式
     代理接口类
     public interface mainFunction {
    public String doOne();
    public String doTwo();
    }
     业务类(实现代理接口)
     public class Services implements mainFunction {
    public String doOne() {
    // TODO Auto-generated method stub
    System.out.println("this is doOne function");
    return "This is doOne";
    }
    public String doTwo() {
    // TODO Auto-generated method stub
    System.out.println("this is doTwo function");
    return "This is doTwo";
    }
    }
     静态代理类(实现代理接口)
    public class Proxy implements mainFunction {
    private Services services;
    public Proxy(Services services){
    super();
    this.services=services;
    }
    public String doOne() {
    // TODO Auto-generated method stub
    return services.doOne()+" my name is TangYu";
    }
    public String doTwo() {
    // TODO Auto-generated method stub
    return services.doTwo()+" my name is jarrem";
    }
    }


     测试类
    public class MyTest {
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    Services services=new Services();
    Proxy proxy=new Proxy(services);
    System.out.println(proxy.doOne());
    System.out.println(proxy.doTwo());
    }
    }
      原理:
    在静态代理类中获取业务类的数据并进行修改实现代理加强
    缺点:1.代码冗余,业务类和代理类都要实现代理接口,当增加接口时,全部要修改,增加了代码复杂度
     2.代理对象只服务于一种类型的对象,如果要服务多类型的对象。要为每一种对象都进行代理
     即静态代理类只能为特定的接口(Service)服务。如想要为多个接口服务则需要建立很多个代理类。


  • 相关阅读:
    插件式编程之使用反射分离MDI的父窗口和子窗口
    我总结的三层结构之一:Model示例
    我总结的三层结构之二:IDAL示例
    02.08 代理模式
    02.09 装饰模式
    块元素、行元素容纳规则
    CSS继承选择器与包含选择器的比较
    02.07 适配器模式
    02.10 桥模式
    匿名方法
  • 原文地址:https://www.cnblogs.com/jarrem/p/5836602.html
Copyright © 2011-2022 走看看