В той же статье, которую вы цитируете, есть следующее утверждение:
К другим видам синглетонов, которые являются полуприемлемыми, относятся те, которые не влияют на выполнение вашего кода. У них нет «побочных эффектов»
... а затем в статье рассказывается о ведении журнала. Другой типичный пример - печать. Так что это аргументы для синглетонов даже в статье, которая призывает к «давайте избавимся от всех синглетонов».
Аргумент, который приводит автор, интересен. Он заявляет, что глобальное состояние - это настоящая проблема синглетонов, и если между вашей программой и синглтоном существует односторонняя связь, вы находитесь в открытом доступе.
И, безусловно, Java был бы худшим языком, если бы в нем не было статических переменных, поскольку это функция, которая требуется в нескольких случаях использования. Я имею в виду, что вы можете программировать процедурным способом на Java, если вы действительно этого хотите ... и это само по себе не зло.
Злоупотребление статическими переменными и синглетонами не обязательно означает, что мы должны избавиться от них.