Одиночка используется для хранения одного экземпляра определенного класса, так что всякий раз, когда экземпляр извлекается, он всегда будет одинаковым.Поэтому установка данных будет означать, что данные всегда будут одинаковыми при получении.
Это отличается от автоматической загрузки класса, так как каждый раз, когда вы создаете новый экземпляр, вы сбрасываете состояние до класса по умолчанию.Тем не менее, Singletons следует использовать с осторожностью, поскольку они по сути являются прославленными глобальными переменными.
Следует использовать фабричный шаблон для делегирования определения и создания объектов.Он используется, когда вы не хотите указывать конкретный класс, но требует определенного подкласса при наборе условий.Вы не можете передать параметры построения автозагрузчику, и может потребоваться некоторая сложная логика, чтобы определить, какой объект должен быть возвращен с фабрики, поэтому опять же он не достигает того же самого.
Автозагрузчик долженпросто использовать, чтобы найти файл класса и включить его.Он не должен (и не может) выполнять какую-либо логику, такую как создание объекта или принятие решения о том, какой объект загрузить.