Este proyecto contiene ejemplos implementados en Python para los principales patrones de diseño creacionales. Cada patrón se encuentra en su propio módulo y se puede ejecutar desde el archivo main.py
.
El proyecto tiene un Dockerfile y un docker-compose por si no se tiene instalado un entorno de programación Python. Sino no es necesario levantar el contenedor.
- Docker y Docker Compose instalados.
Desde la raíz del proyecto, correr:
docker-compose up --build
Esto construirá el contenedor y ejecutará el archivo main.py
, el cual demuestra todos los patrones uno por uno.
.
├── Dockerfile
├── docker-compose.yml
└── app/
├── main.py
├── factory_method/
├── abstract_factory/
├── builder/
├── singleton/
└── prototype/
- Define una interfaz para crear un objeto, pero deja que las subclases decidan qué clase instanciar.
- Ruta:
factory_method/
- Ejecuta:
CreadorCamion
,CreadorBarco
- Provee una interfaz para crear familias de objetos relacionados sin especificar sus clases concretas.
- Ruta:
abstract_factory/
- Ejecuta:
FabricaModerna
,FabricaVictoriana
- Permite crear objetos complejos paso a paso.
- Ruta:
builder/
- Ejecuta:
Director
construyendo una casa conConstructorModerno
- Asegura que una clase tenga una única instancia y proporciona un punto de acceso global a ella.
- Ruta:
singleton/
- Ejecuta:
Configuracion
como instancia única
- Permite copiar objetos existentes sin depender de sus clases concretas.
- Ruta:
prototype/
- Ejecuta: clonación de
Circulo
yRectangulo
Explorar y modificar los ejemplos para entender cómo se implementan estos patrones y cómo se aplican en contextos reales. Cada patrón está diseñado para ser fácilmente extendido o modificado.
- Agregá un nuevo tipo de transporte (Ej: avión) en Factory Method.
- Sumá una nueva familia de muebles (Ej: Estilo Minimalista) en Abstract Factory.
- Incorporá nuevas partes en la casa (pileta, garage) usando Builder.
- Cambiá el estado global en Singleton y verificá su persistencia.
- Extendé el sistema de formas en Prototype para admitir
Triángulo
.