zoukankan      html  css  js  c++  java
  • 设计模式之GOF23代理模式03

    动态代理

    public class StarHandler implements InvocationHandler{
      Star realStar;
     public StarHandler(Star realStar) {
       this.realStar = realStar;
      }
     @Override
     public Object invoke(Object proxy, Method method, Object[] args)
       throws Throwable {
      Object obj=null;
      System.out.println("面谈");
      System.out.println("签合同");
      //核心代码
      if(method.getName().equals("sing"))
      {
       obj=method.invoke(realStar, args);
      }
      System.out.println("收尾款");
      return obj;
     }
    }
    public interface Star {
     /**
      * 面谈
      */
      void confer();
      /**
       * 签合同
       */
      void signContract();
      /**
       * 唱歌
       */
      void sing();
      /**
       * 收尾款
       */
      void coleectMoney();
    }
    public class RealStar implements Star {
      private String name;
      
     public RealStar(String name) {
       this.name = name;
      }
     @Override
     public void sing() {
      System.out.println(this.name +"唱歌");
     }
     public String getName() {
      return name;
     }
     public void setName(String name) {
      this.name = name;
     }
     @Override
     public void confer() {
    System.out.println("RealStar.confer()");  
     }
     @Override
     public void signContract() {
    System.out.println("RealStar.signContract()");  
     }
     @Override
     public void coleectMoney() {
    System.out.println("RealStar.coleectMoney()");  
     }
    }
    public class Client {
      public static void main(String[] args) {
       Star realStar =new RealStar("Jay");
       StarHandler handler=new StarHandler(realStar);
       Star proxy=(Star) Proxy.newProxyInstance(ClassLoader.getSystemClassLoader(), new Class[] {Star.class},handler );
          proxy.sing();
      }
    }
    解析动态代理过程
     
  • 相关阅读:
    POJ 1837 Balance 水题, DP 难度:0
    POJ 3126 Prime Path bfs, 水题 难度:0
    python学习笔记day01 练习题
    python学习笔记day01_08 循环语句while
    python学习笔记day01_07 流程控制语句
    python学习笔记day01_06 基础数据类型
    python学习笔记day01_05 运行py程序--常量,变量,注释
    python学习笔记day01_04 python分类
    python学习笔记-day01_02计算机基础
    PAT 甲级 1134 Vertex Cover
  • 原文地址:https://www.cnblogs.com/code-fun/p/11332330.html
Copyright © 2011-2022 走看看