У меня есть система, написанная на Java, где у меня есть несколько различных объектов, каждый из которых использует разные ресурсы. Некоторые имеют подключения к очередям activeMQ, некоторые имеют сетевые подключения, а другие имеют открытые файлы. Некоторые из них также содержат запущенные потоки.
Когда где-то в этой системе происходит фатальная ошибка, мне нужно закрыть ее, правильно закрыть все ресурсы и остановить все работающие потоки.
Моя проблема возникает, когда объект, вызвавший ошибку, должен запустить процесс завершения работы. Этот объект не знает о других объектах, которые имеют открытые файлы и так далее. Таким образом, он может в основном высвободить все свои ресурсы, и это все.
Я ищу чистый способ достичь этого, не запутываясь и не передавая несколько ссылок на объекты по всей системе.
Любое понимание приветствуется. Спасибо.