java - Java中如何通过参数选择实现

标签 java reflection polymorphism

我正在尝试为物流查询制作一个restful api。

它接受两个参数:shipping_id和tracking_number,并且它将调用第三方API来获取结果并对其进行处理。

不同公司提供的第三方api有几十个,调用哪个取决于shipping_id的值。

我的解决方案是这样的:

将会有一个父类(super class)“LogisticsQueryController”
和许多子类:
'ALogisticsQueryController'、'BLogisticsQueryController'...扩展'LogisticsQueryController'。

并保留 map ('shipping_id'=>'class_dir')。
给定shipping_id后,我可以通过shipping_id获取class_dir,然后使用反射新建一个实例。

但是我听说Java中的反射效率可能很低,那么更好的解决方案是什么?

最佳答案

是的,反射效率低下。我看不出在您的场景中使用反射的任何原因。如何实现工厂设计模式,通过静态工厂方法为每个 Shipping_id 获取特定实现的新实例。

关于java - Java中如何通过参数选择实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42810302/

相关文章:

c# - 如何在 DDD 和存储库模式中对此建模

php - laravel 5.2 一个有很多关系的枢轴(属于多态/多态)?

java - 通过终端在java中编译并导出

c++ - 在 C++ 中先验未知子类类型的模型类/子类

java - 在两个 JFrame 之间同步 JEditorPane 的内容

c# - 具有通用返回类型但不是通用输入的方法。这可能吗?

c# - 如何检查无参数构造函数的类型?

java - java反射(处理)中的奇怪错误

java - EMDK 安卓工作室

java - Android - AudioRecord 在channel_in_stereo 中分割2 个 channel