Есть такая реализация логирования - https://pastebin.com/7xL6S4vV
Защищённый логер даёт функционал, что логер пишется только по пятницам (такая условность).
Представьте класс Pathfinder у которого есть зависимость от условного ILogger, в процессе своей работы он что-то пишет в лог. Что не принципиально. Сделайте в нём один метод Find который только пишет в лог через своего логера.
Перепроектируйте систему логирования так, что бы у меня было 5 объектов класса Pathfinder. 1) Пишет лог в файл. 2) Пишет лог в консоль. 3) Пишет лог в файл по пятницам. 4) Пишет лог в консоль по пятницам. 5) Пишет лог в консоль а по пятницам ещё и в файл.
Моё решение:
первые два объекта наследуются от логера, следующие два наследуются от первых двух соответственно, а последний наследуется от логгера и получает первые два объекта в конструкторе
https://gist.github.com/NoNameDeleted/537bd7db81848c22e8cd528a82866fa8
Это задание на умение выстраивать архитектуру проекта и применять связи Is-A и Has-A. Жаль только что таких заданий всего два на курсе - это и следующее, хотя этот навык сейчас самый главный в контексте развития нейросетей. Надеюсь в будущем добавят больше материалов по этой теме.