首页 新闻 会员 周边 捐助

java动态代理接口

0
[待解决问题]

目前业务遇到一个问题,请问一下博客里的各位大佬:

 

抽象一下,是这样的:

有一个数据库接口,有多个实现类,对应着不同数据格式的存取,调用方只想调用这个接口,而不用管这些实现类。因此业务层需要判断使用哪一个实现。

 

所以我想请问有没有方法能够不用大量的if...else判断,而是表驱动编程类似的方法,可以直接对应创造实现类。也许反射?但是我没有写成功。

 

在线等,急。

勉强的猫的主页 勉强的猫 | 菜鸟二级 | 园豆:204
提问于:2018-03-16 16:00
< >
分享
所有回答(4)
0

抽象工厂?

吴瑞祥 | 园豆:29449 (高人七级) | 2018-03-16 16:01

谢谢,但是这个我也想过了。只是能不能去掉判断的大量的if..else,业务后面有扩展。

支持(0) 反对(0) 勉强的猫 | 园豆:204 (菜鸟二级) | 2018-03-16 16:15

@勉强的猫: 用switch.定义一个业务枚举.通过这个业务枚举来匹配实现.

支持(0) 反对(0) 吴瑞祥 | 园豆:29449 (高人七级) | 2018-03-16 16:18

@吴瑞祥: 应该可以实现吧?但是要动态地创建实现类,不知道通过枚举怎么做。劳烦再讲得细一点。

支持(0) 反对(0) 勉强的猫 | 园豆:204 (菜鸟二级) | 2018-03-16 16:23
0

你自己都说了动态代理啦

西漠以西 | 园豆:1675 (小虾三级) | 2018-03-16 16:15

谢谢。没有好办法的话,也只能这样做了。

支持(0) 反对(0) 勉强的猫 | 园豆:204 (菜鸟二级) | 2018-03-16 16:24
0

将你要实现的业务逻辑配置在一个功能配置表,用你if条件对应的逻辑ID配置主键 ,然后用数据库读写,获取对应所要调用的接口,然后动态代理实现对应的对象和方法调用!

Ankermaker | 园豆:251 (菜鸟二级) | 2018-03-16 16:50
0

我用了 配置文件 + 反射 的方式,勉强能满足需求。。感谢各位提供帮助的博友。问题没有提问清楚请见谅。

勉强的猫 | 园豆:204 (菜鸟二级) | 2018-03-21 16:04
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册