Несмотря на словосочетание registerSingleton, которое может ввести в заблуждение, данный класс, строго говоря, синглтоном не является, поскольку можно подменить его реализацию. "Singleton" - потому что при каждом обращении к нему, будет выдаваться один и тот же инстанс (в противовес Factory, который каждый раз создает новый инстанс).
Папа-программист сидит за компьютером. Рядом стоит маленький сын и жует яблоко. Вдруг он спрашивает:
— Папа, а почему, если укусить яблочко, оно потом становится коричневым?
Отец, не поворачивая головы от компьютера:
— Видишь ли, в яблоке содержится железо. После того, как плод лишается кожуры, железо окисляется под воздействием кислорода, образуется оксид железа, который имеет темную окраску.
Пауза минут на десять, после чего сын робко спрашивает:
— Пап, а с кем это ты сейчас разговаривал?
Кстати, миф про "железо" в яблоках неверен.
Вот правда: https://www.techinsider.ru/science/1547023-pochemu-narezannye-yabloki-stanovyatsya-korichnevymi-na-vozduhe
В любом случае, спасибо за интерес к моей первой статье!