в сравнении с наследованием, способ добавление некоторых общих методов и полей сразу нескольким классам, в данном случае, репозиториям.
Таким образом, текущий репозиторий, обёрнутый декоратором, корректно справится с задачей. Однако, если у декоратора нет полной информации о том, как должны очищаться остальные репозитории (они могут хранить что-то в других преференсах, бд, файлах), то по-прежнему остаётся проблема того, что эти репозитории нужно как-то уведомить о необходимости очистки.
Один из вариантов, который я вижу - создать список слушателей в декораторе, куда подключать все репозитории. В дальнейшем, если один репозиторий поймал событие о разлогине, уведомляются все репозитории-слушатели и выполняют свою логику по очистке.
Что думаете?
получается декорируемый репозиторый самый главный, все остальные должы как-то на него подписывать и как тогда правильно выстроить подписку/отписку?
Обсуждают сегодня