Представьте, что у меня есть несколько классов, которые могут вести журнал, поэтому я создал регистратор интерфейс и несколько реализаций (запись в файл, в стандартный вывод, в базу данных и т. д.), но иногда я не забочусь о регистрации этих сообщений, поэтому я сделал реализацию, которая просто игнорирует все сообщения.
Теперь это помогает избежать if
s и просто использовать $ this-> logger-> write ($ message)
, но мне все равно придется каждый раз вводить фиктивный логгер.
Так не повредит ли такие вещи, как: $ this-> logger = $ logger? $ logger: new DummyLogger ()
в конструкторе.
Обычно я не работаю с конструктором, но такие вещи не кажутся слишком опасными.
Вы бы выбрали этот подход?