我正在开发一个转换器,它可以将一个数据模型转换为另一个数据模型。具体来说,它是一个hafas模型,api以xml格式向我发送一个hafas响应。它是哪种模型并不重要,但它对该模型的不同版本使用不同的pojo类。
我使用两个版本的hafas(目前),两个版本都有单独的方案,因此我生成的pojo类的构造方式不同。问题是两个版本都不同,但仍然使用相同或相似的类名。读取它们并将其转换为另一个数据模型的算法几乎相同。900多行代码,可能还有几行修改过的代码。
例子
第1版:
public void convertAndInsertHafasLegsInsideTriasTrip(TripStructure myTrip, LegList hafasLegs) {
for (Leg hafasLeg :
hafasLegs.getLeg()
) {
TripLegStructure myTripLeg = convertToTriasTripLeg(hafasLeg);
if (myTripLeg != null)
myTrip.getTripLeg().add(myTripLeg);
else
throw new NullPointerException("ERROR: HAFAS TripResult conversion ended up with NULL object");
}
}
第二版:
public void convertAndInsertHafasLegsInsideTriasTrip(TripStructure myTrip, LegList hafasLegs) {
for (Leg hafasLeg :
hafasLegs.getLeg()
) {
TripLegStructure myTripLeg = convertToTriasTripLeg(hafasLeg);
if (myTripLeg != null)
myTrip.getTripLeg().add(myTripLeg);
else
throw new NullPointerException("ERROR: HAFAS TripResult conversion ended up with NULL object");
}
}
``` `LegList` 阶级和 `Leg` 转换器的第一个和第二个版本中的类是不同的,因为这两个版本使用不同的pojo类包。所以 `LegList` 及 `Leg` 有不同的 Package 。
我的问题是,我有几十个完全相同的方法,可能有几个不同,因为这两个包中的类名不同。
另一个问题是,例如,如果我必须实现一个转换器,我有另一个版本也类似于这些,我同样必须复制数千行代码。
暂无答案!
目前还没有任何答案,快来回答吧!