Я бы также сказал, что не используйте фабрику, когда у вас есть конкретная реализация, которую вы хотите. Чтобы продолжить пример List
, я знаю, что хочу ArrayList
, потому что я делаю произвольный доступ. Я не хочу полагаться на то, что фабрика сделает это правильно, когда я смогу сделать это сам.
И наоборот, когда я не хочу знать о конкретном подклассе, я могу использовать фабрику и позволить ей беспокоиться о том, какой объект на самом деле создать.
Полагаю, я бы предложил добавить в выражение «когда использовать абстрактный шаблон фабрики» слово «когда вам не нужно, какой конкретный подкласс вы получите», и наоборот «когда использовать фабрику ".
РЕДАКТИРОВАТЬ: будьте осторожны, чтобы избежать универсальный инструментальный завод завод-изготовитель .