REST-клиент, использующий библиотеки Simple XML и Gson: использовать общие POJO или шаблон адаптера? - PullRequest
2 голосов
/ 04 ноября 2011

В моем java-приложении (в частности, в Android-приложении) я выполняю вызов REST (GET).Ответ может быть либо XML, либо JSON.Я использую шаблон стратегии, который решает, какой синтаксический анализатор использовать на основе типа содержимого ответа.

Если ответ является XML, я использую простую библиотеку для анализа ответа в моих POJO, а если ответ - JSONЯ использую библиотеку Gson.

Теперь мой вопрос: есть ли польза от наличия одного POJO, который содержит аннотации Simple и Gson?Или лучше разделить 2 POJO и затем иметь адаптер (или, может быть, Wrapper) для «преобразования» в общий POJO?Другими словами, каковы плюсы и минусы следующих подходов?

Подход 1:

class PojoCommon {

    @SimpleXmlAnnotations
    @GsonAnnotations
    private int age;

    @SimpleXmlAnnotations
    @GsonAnnotations
    private String name;

    //Constructors, Getters and Setters ...
}

Подход 2:

class Pojo{

    private int age;
    private String name;
}

class PojoXml{
    @SimpleXmlAnnotations
    private int age;

    @SimpleXmlAnnotations
    private String name;

    public Pojo toGenericPojo(){
        return new Pojo(this.age, this.name);
    }
}

class PojoJson{

    @GsonAnnotations
    private int age;

    @GsonAnnotations
    private String name;

    public Pojo toGenericPojo(){
        return new Pojo(this.age, this.name);
    }
}

1 Ответ

1 голос
/ 04 ноября 2011

Хотя подход 1 лучше с точки зрения обслуживания, но вы уже ответили на свой вопрос, так как в долгосрочной перспективе с любыми предлагаемыми изменениями это может усложнить ситуацию.

Мое предложение - создать второе POJO для каждого отдельного типа и использовать для конвертации подход обертки / адаптера

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...