作家
登录

Java反射机制应用实践

作者: 来源: 2017-05-18 08:56:25 阅读 我要评论

  •         if (!user.hasPrevilege()) { 
  •             // 抛出异常 
  •         } 
  •         // 履行真正的营业 
  •         executeTransaction(); 
  •         PerformanceUtil.endTimer(); 
  •     } 
  •  
  • 固然我们膳绫擎真正要履行的营业只有executeTransaction(),然则日记,机能,权限相干的代码差不多要将真正的营业代码掩盖了。并且今后如不雅我们还有一个Example2,它同样须要实现雷同的日记,机能,权限代码。如许当今后我们须要新增相干的逻辑检查的时刻,我们须要所有Example进行重构,这显然不相符面向对象的一个基来源基本则-封装变更。

    我们要实现的营业是,统计员工工资的时刻法度榜样所履行的时光以及检查取户的权限。起首我们先来实现Salary类,它琅绫擎包含一些实现统计员工工资的营业逻辑:

    1. public interface SalaryInterface { 
    2.     public void doSalary(); 
    3.  
    4. public class Salary implements SalaryInterface { 
    5.     public void doSalary() { 
    6.         ... 
    7.     } 
    8.  

    经由过程InvocationHandler我们来实现动态代劳,今后当我们调用obj的相干办法之前,都邑经由过程invoke办法进行代劳,而不会直接调用obj办法。

    1. public class SimpleProxy implements InvocationHandler { 
    2.     private Object obj; 
    3.     private Object advice; 
    4.  
    5.     // 绑定代劳对象 
    6.     public Object bind(Object obj, Advice advice) { 
    7.         this.obj = obj; 
    8.         this.advice = advice; 
    9.         return Proxy.newProxyInstance(obj.getClass().getClassLoader(), 
    10.             obj.getClass().getInterfaces(), this) 
    11.     } 
    12.  
    13.     // 实现代劳 
    14.     public Object invoke(Object proxy, Method method, Object[] args) throws Throwalbe { 
    15.         Object result = null
    16.         try { 
    17.             advice.before(); 
    18.             result = method.invoke(obj, args); 
    19.             advice.after(); 
    20.         } catch(Exception e) { 
    21.             e.printStackTrace(); 
    22.         } 
    23.         

        推荐阅读

        Linux性能分析工具汇总合集

      常见用法: netstat –npl 可以查看你要打开的端口是否已经打开。 netstat –rn 打印路由表信息。 netstat –in 供给体系上的接口信息,打印每个接口的MTU,输入分>>>详细阅读


      本文标题:Java反射机制应用实践

      地址:http://www.17bianji.com/lsqh/35285.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)