Когда нужно куча фабрик, которые получаете по некоторой стратегии
Ну к примеру есть некоторый ProviderInterface, он создается сложно и применяется фабрика к каждому ProviderFactoryInterface, в которую вы передадите и клиента и настройки и сам провайдер собственно.
Но вот задача — вам нужно доставать гибко нужный провайдер (их несколько), но каждый сложно создается и тогда мы принимаем что-то более абстрактное :)