У меня есть две модели протобаффов, называемые Car и MotorCar, слишком большие, чтобы ими делиться.Я получаю одно сообщение в формате автомобиля, и мне нужно преобразовать его в формат MotorCar и отправить его дальше.Они содержат несколько похожих полей и вложенных объектов с одинаковыми именами, а некоторые полностью различаются, т. Е. У MotorCar есть концепция двигателя, а у автомобиля - нет, но мне нужно найти ее, чтобы предоставить ее в зависимости от модели автомобиля.Я не уверен, какой подход выбрать для выполнения этой работы.Должен ли я просто использовать маппер и заполнять дополнительные объекты следующим образом:
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) {
...
}
}
Моя проблема в том, что он создаст огромный класс с большим количеством сеттеров.Я посмотрел на шаблон адаптера, но я не уверен, как реализовать его для этого сценария протобуфф-сообщений без класса интерфейса.
Любая помощь приветствуется.
Спасибо