在protobuf消息之间转换

时间:2018-12-21 14:51:45

标签: design-patterns protocol-buffers protobuf-java

我有两个原型轿车模型,分别称为Car和MotorCar,太大而无法共享。我收到了Car格式的消息,需要将其转换为MotorCar格式并发送。它们包含一些相似的字段和具有相同名称的嵌套对象,而某些完全不同,即MotorCar具有Engine的概念,car没有,但是我需要根据car模型对其进行查找以提供它。我不确定采取什么方法进行这项工作。我是否只使用一个映射器并以这种方式填写其他对象:

public class Mapper {

    public MotorCar from (Car carMessage) {
        MotorCar.Builder motorCar = MotorCar.newBuilder();
        motorCar.setModel(carMessage.getModelName());
        ...
        motorCar.setEngine(getEngine(carMessage.getModelName()))
        return motorCar.build()
    }

    private Engine getEngine(String model) {
        ...
    }
}

我的问题是它将创建一个带有大量二传手的庞大类。 我已经研究了适配器模式,但是不确定如何在没有接口类的情况下针对probbuff消息实现该模式。

任何帮助表示赞赏。

谢谢

0 个答案:

没有答案