Este patrón, pretende resolver problemas recurrentes con un diseño flexible y reusable para software orientado a objetos.
[1] Las clases principales en este patrón son el creador y el producto.
El creador necesita crear instancias de productos, pero los tipos concretos de cada producto no deben estar reflejadas en el propio creador, sino que las posibles subclases del creador deben poder especificar los tipos concretos, subclases, de los productos para utilizar.
Este método abstracto se define para que devuelva un producto.
Las subclases del creador pueden sobrescribir este método para devolver subclases apropiadas del producto... JavaAhora definimos el creador concreto: Definimos el producto y su implementación concreta: Ejemplo de uso: Python