关于java 多态的问题

大魔大天王 发布于 03/15 10:20
阅读 217
收藏 0

    现在有个项目,要对接多个运营商获取用户sim卡的信息,但是每个运营商的处理逻辑都是不一样的,但是对掉用我这个接口的人而言 这就是一个接口,请问下这种情况如何处理.

    先说下我的方法,我定义了一个接口 然后各个运营商的实现类重写这个接口的方法,然后定义了一个map,在项目初始化的时候,把运营商的类 以运营商的标识为key,实现的类为value 存进去,然后根据不同的运营商标识来获取 具体是哪个实现类.请问这如何优化?

加载中
0
MZHS
MZHS

已经够优秀了,不需要优化了

0
韦小仇
韦小仇

这不挺好的吗

0
Shazi199
Shazi199

不要觉得查表法很low,实际上很有效

大魔大天王
大魔大天王
--! 还是真感觉有点low,原来我还想把类初始化配置到xml里面,然后通过来Spring来加载配置,但感觉太麻烦了,不太好
0
Joyzhou
Joyzhou

逻辑上没有优化的点了,所以你觉得有问题是你代码上有缺陷?

Joyzhou
Joyzhou
回复 @大魔大天王 : 实际上就是一个工厂方法
大魔大天王
大魔大天王
对,感觉这两个类实现有点low
0
J
JCod3r

用MQ不好吗?

大魔大天王
大魔大天王
暂时这个项目没用到mq
0
烈冰
烈冰

核心思路也就这样吧,觉得low就去套一下设计模式,运营商实现类实现单例模式,如果各个类的实现逻辑差不多就加个模板模式,再做个工厂……如果你想搞得更复杂,可以把运营商实现类做成热加载,参考SPI或一些插件框架,这样系统在运行过程中也可以加入新的运营商而不需要停机,不过有必要吗?

返回顶部
顶部