В каком сценарии мы используем фабричный шаблон, а в каком - синглтон? - PullRequest
6 голосов
/ 28 сентября 2010

Пожалуйста, помогите мне понять шаблон Factory и шаблон Singleton, когда нам нужно использовать шаблон Factory и когда использовать шаблон Singleton.

В чем главное преимущество / недостаток одного над другим?

Любое предложение (объяснение) мне очень поможет.

Ответы [ 2 ]

3 голосов
/ 28 сентября 2010

Они не очень похожи, и поэтому у них нет преимуществ друг перед другом.Если вы не уверены, прочитайте сначала:

Используйте шаблон синглтона, когда вы хотите разрешить создание только одного экземпляра класса объекта.

Используйте шаблон фабрики, когда вам нужно абстрагироваться от деталей создания экземпляра класса вашего объекта.

2 голосов
/ 28 сентября 2010

Они делают две совершенно разные вещи.

Фабрика существует для создания одной или нескольких копий класса.Он или метод, который он предоставляет, может быть предоставлен другому классу, которому нужна зависимость, и зависимый класс может вызвать фабричный метод для получения экземпляра.

Для создания одной и ТОЛЬКО одной копиикласс.Ссылка на класс получается статически, но эта ссылка затем может передаваться как экземпляр, в отличие от чисто статического класса.

...