Это звучит как невыполнимая задача для меня. Например, даже ваши текущие критерии неверны, ИМХО. Метод фабрики возвращает экземпляр некоторого класса, но
- нет необходимости создавать экземпляр (он может использовать кеш, как, например,
Integer.valueOf
),
- это может создать экземпляр, использующий что-то отличное от
new
оператора
- он может делегировать другому методу или другому классу для создания экземпляра
Вы можете искать часто используемые имена, такие как «createXxx», «newXxx» или «valueOf», но это, конечно, вернет потенциальные фабричные методы и пропустит многие.
Заводской шаблон - это просто шаблон. Это не что-то настолько жесткое, что вы можете идентифицировать это автоматически, ИМХО.