Добавление атрибутов в существующий объект - PullRequest
0 голосов
/ 14 мая 2018

У меня есть существующее приложение REST, которое кэширует POJO (объект E.g Trade) в ehcache, и многие другие приложения используют это. Некоторые отправляют этот объект Trade в службу REST, чтобы его можно было сохранить в Cache и DB, а некоторые выполняют операцию get для этого кэша с использованием службы REST.

public class Trade implements Serializable {
    private static final long serialVersionUID = -92565215465632589L;
    private String tradeNo = new String();
    private String isin = new String();
    private String quantity = new String();

.... //getters and setters 
}

Теперь я хочу добавить еще один компонент в наше приложение, которое использует многие из указанных выше торговых атрибутов, а также много новых, которые я хочу добавить в качестве части функциональности. Я не хочу добавлять новые атрибуты в существующий Trade POJO, поскольку это также повлияет на существующий код. Должен ли я создать новый POJO, который расширит торговлю, добавит новые атрибуты и сохранит этот новый POJO в кеше? У меня будет почти аналогичный объект в кеше с таким подходом :-(. Любой другой хороший подход или шаблон проектирования доступен?

public class ExtendedTrade extends Trade {
    private String operation = new String();
    private String dealType = new String();
    private String identifier = new String();

.... //getters and setters 
}

Выше ExtendedTrade, который я описывал в своем подходе.

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

1 Ответ

0 голосов
/ 14 мая 2018

Встраивание (возможно, с шаблоном делегата) кажется более надежным при определенных обстоятельствах.

public class ExtendedTrade {
    private Trade trade;
    private String operation = "";
    private String dealType = "";
    private String identifier = "";

.... //getters and setters 
}

Подумайте:

  • , может ли существующая сделка быть расширена до ExtendedTrade (аннотация).
  • может ли существовать ExtendedTrade2 с другими атрибутами.
  • нужно ли исправлять существующие атрибуты Trade.

Я, конечно,не буду настаивать на том, что это лучше.

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