¿Qué lenguajes de programación admiten el patrón de fábrica y en qué nivel se proporciona soporte de fábrica en ese lenguaje de programación específico?

No puedo pensar en ningún lenguaje OO que no lo soporte. Dado que todo lo que necesita es la capacidad de tener una función o método que pueda crear un objeto basado en los parámetros pasados, sería un lenguaje particularmente lisiado que no podría implementar fábricas.

El único lenguaje que conozco con soporte explícito para el patrón de fábrica es Scala (irónico, dada la reputación funcional de Scala). El patrón de fábrica era una motivación clara (no la única) para los objetos acompañantes de Scala. En Scala, si tiene una clase de perro y también crea un objeto complementario de perro con un método de aplicación, puede escribir

val pet = Perro (valor)

y se llamará al método de aplicación del objeto complementario Dog (que presumiblemente ha escrito para crear una instancia Dog basada en el valor pasado).

Esto es muy utilizado en Scala. Todas las colecciones principales lo hacen, devolviendo la subclase especializada apropiada del tipo de colección general. Por lo tanto, si escribe “Set (1,2,3)”, devolverá HashSet o TreeSet o algo más, dependiendo de la naturaleza de la entrada.

Creo que esto se aplica a la mayoría de los lenguajes oop: esto se hace a través de la funcionalidad existente. No deberías necesitar nada más que eso. Ejemplos en diferentes idiomas Patrón de método de fábrica

El patrón de fábrica se puede implementar en cualquier lenguaje de programación. Como la mayoría de los patrones, es muy simple y no necesita soporte específico del idioma.