目前业务遇到一个问题,请问一下博客里的各位大佬:
抽象一下,是这样的:
有一个数据库接口,有多个实现类,对应着不同数据格式的存取,调用方只想调用这个接口,而不用管这些实现类。因此业务层需要判断使用哪一个实现。
所以我想请问有没有方法能够不用大量的if...else判断,而是表驱动编程类似的方法,可以直接对应创造实现类。也许反射?但是我没有写成功。
在线等,急。
抽象工厂?
谢谢,但是这个我也想过了。只是能不能去掉判断的大量的if..else,业务后面有扩展。
@勉强的猫: 用switch.定义一个业务枚举.通过这个业务枚举来匹配实现.
@吴瑞祥: 应该可以实现吧?但是要动态地创建实现类,不知道通过枚举怎么做。劳烦再讲得细一点。
你自己都说了动态代理啦
谢谢。没有好办法的话,也只能这样做了。
将你要实现的业务逻辑配置在一个功能配置表,用你if条件对应的逻辑ID配置主键 ,然后用数据库读写,获取对应所要调用的接口,然后动态代理实现对应的对象和方法调用!
我用了 配置文件 + 反射 的方式,勉强能满足需求。。感谢各位提供帮助的博友。问题没有提问清楚请见谅。