如何避开java的动态代理用反射机制优雅地解耦

daili
基于反射机制实现的总是在调用代码里带着被代理类的小尾巴,比如:UserService proxy = (UserService) Proxy.newProxyInstance(classLoader, interfaces, logHandler); 这里的UserService就是被代理类的接口,既然要封装被代理类的内部实现,那么还要拿他们的接口类写到主调方代码里就不干不净了,主调方每次调用时都要考虑被代理方有没有变更,变更了还要改调用逻辑,着实鸡肋。下面的代码提供一种完全封装被代理类的演示,调用方在代码层面不需要使用被代理类的接口来接收返回,这就给调用方和被调用方实现了,双方仅通过必要的声明和输入输出参数通信,最大限度降低代码级的噪声。想想你用的Feign多恶心!

 res = (Map) result;
			System.out.println(res);
		} catch (IllegalArgumentException e) { 
			e.printStackTrace();
		} catch (IllegalAccessException e) { 
			e.printStackTrace();
		} catch (InvocationTargetException e) { 
			e.printStackTrace();
		}
	}
}

class Rand
{
        public Rand()
        {}  
        
        /**
         * @description num是10的整数倍
         * @param num
         * @return
         * @throws Exception
         */
        public static long getRand(int num) throws Exception
        {                
                if (num  getRandCustom(int num) throws Exception 
        {                
                if (num  map = new HashMap();
                map.put("round", Long.valueOf(Math.round(d)));
                
               return map;        // 3位long                
        }
}

声明: 除非转自他站(如有侵权,请联系处理)外,本文采用 BY-NC-SA 协议进行授权 | 智乐兔
转载请注明:转自《如何避开java的动态代理用反射机制优雅地解耦
本文地址:https://www.zhiletu.com/archives-10776.html
关注公众号:智乐兔

赞赏

wechat pay微信赞赏alipay pay支付宝赞赏

上一篇
下一篇

相关文章

在线留言

你必须 登录后 才能留言!