Я создаю приложение с несколькими модулями, и оба они должны запрашивать одну и ту же коллекцию . Итак, я создал общий модуль для хранения контрактов Document , который является интерфейсом необходимых методов для каждой службы Document class для реализации. Звучит хорошо, потому что таким образом я заставляю оба класса использовать этот контракт. Проблема в том, что Service A требует добавления дополнительных полей к Document class , которые не используются Service B . в качестве примера:
Общий модуль:
public interface UserContract {
String getId();
String getUsername();
}
Сервис A:
public class Administrator implements UserContract {
private String additionalField;
... method implementations
}
Сервис B:
public class RegularUser implements UserContract {
... method implementations
}
Итак, если сценарий случится так, что я обновлю ту же коллекцию из Service B , которая имеет меньше полей, чем Service A class, и позже буду запрашивать элементы из этой коллекции в Service A Я бы получил исключение, потому что Сервис B во время обновления не включал дополнительные поля.
Какие есть другие варианты для совместного использования / обеспечения исполнения контракта между другими проектами и не нарушать работу других сервисов?