У меня есть сущностная модель, определенная в POJO как
class A {
B instance_b;
}
class B {
Collection<C> instance_c;
}
class C {}
Я реализовал шаблон наблюдателя, в котором есть 2 конкретных наблюдателя - JsonListener и DatabaseListener, которые используются для сериализации одноэлементного экземпляра класса A в json -файл (используя Джексона) и в дБ как json clob. У меня есть интерфейс LifeCycleManager с обычными методами register (), deregister () и notify () для добавления слушателей и их уведомления
Я написал конструктор для каждого из классов, чтобы изменить частные атрибуты (есть целенаправленно не определены никакие сеттеры). У строителя есть метод update (), с помощью которого я хочу неявно уведомить всех зарегистрированных слушателей.
Есть 2 запроса -
Должен ли я реализовывать интерфейс LifeCycleManager для всех классов A, B, C, чтобы я мог вызвать метод notify () ? или есть альтернатива, где этого можно было бы избежать, так как это выглядит громоздко с ростом модели сущности.
Поскольку я пишу в файл json, насколько я понимаю используя любую json -библиотеку, например, более быстрый xml .jackson, мне нужно перезаписать весь объект json (начиная с класса A) в файл json. Если мое понимание правильное, то, если я нахожусь в сборщике класса C и запускаю метод notify (), как я могу уведомить слушателей с экземпляром класса A? (в основном, как мне извлечь экземпляр A из класса C?), потому что просто обновление экземпляра класса C недостаточно хорошо - мне нужно соблюдать ассоциацию. Есть ли какой-то дизайн, который я могу использовать для этого?
Пожалуйста, советуйте или предлагайте, даже если это требует полной корректировки курса моей мысли.
Спасибо.