Как бы вы справились с двумя одинаковыми объектами значения, которые могут отличаться в будущем? - PullRequest
0 голосов
/ 25 февраля 2020

Допустим, у нас есть один объект Value в нашем приложении Spring Boot. Это очень простой VO с двумя полями, геттерами, сеттерами и одним или двумя базовыми c stati c методами. Требуется еще один объект значения, который на данный момент имеет такую ​​же структуру, но в будущем он может отличаться. Как бы вы справились с этой ситуацией?

Хотя они программно идентичны, их следует использовать в разных частях приложения. Я хочу быть готовым к изменениям в этих двух объектах? Создание двух одинаковых классов звучит слишком просто c. Любой вопрос или предложение приветствуется.

1 Ответ

0 голосов
/ 25 февраля 2020

Звучит как два объекта с отношением IS A. Итак, вы используете наследование.

Второй объект расширяет первый, поэтому у вас есть все поля из первого, доступные для первого. Возможно, вы могли бы создать еще один супертип с interface и переместить в него все свои поля / метод stati c.

Примерно так.

public class FirstObj {
    private final String field1;
    private final String field2;

    public FirstObj(String field1, String field2) {
        this.field1 = field1;
        this.field2 = field2;
    }

}

public class SecondObj extends FirstObj {
    // Any future fields...

    public SecondObj(String field1, String field2) {
        super(field1, field2);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...