Вот проблема, с которой я боролся с тех пор, как впервые начал изучать объектно-ориентированное программирование: как реализовать регистратор в «правильном» ООП-коде?
Под этим я подразумеваю объект, у которого есть метод, к которому мы хотим, чтобы каждый другой объект в коде имел доступ; этот метод будет выводить на консоль / файл / что угодно, что мы будем использовать для регистрации - следовательно, этот объект будет объектом регистратора.
Мы не хотим устанавливать объект регистратора как глобальную переменную, потому что глобальные переменные плохие, верно? Но мы также не хотим, чтобы объект logger передавался в параметрах каждого метода, который мы вызываем, в каждом объекте.
В колледже, когда я рассказал об этом профессору, он не мог дать мне ответ. Я понимаю, что на самом деле есть пакеты (например, Java), которые могут реализовать эту функцию. Однако в конечном итоге я ищу знания о том, как правильно и ООП реализовать это самостоятельно.