DEV Community

Juan Miguel Arias Mejias for 4GeeksAcademy

Posted on

3 1

Factory Method

Hola, hoy venimos con un patrón de diseño creacional.

El Factory Method, es un patrón que nace de la necesidad de abstraer la lógica de creación de un objeto. Es más fácil entenderlo con un ejemplo.

Pongamos en situación que estamos dándole mantenimiento a un sistema de logística, en donde el método de entrega siempre ha sido por tierra y todo bien, el sistema funciona de esta manera por varios años sin problemas. Llega el día, en que nuestra empresa decide diversificar las operación y se toma la decisión de ofrecer logística marítima.

Vaya... parece que tenemos un problema, el sistema solamente esta enfocado a logística terrestre ¿Cómo haremos para resolver este problema? y sobre todo, ¿Cómo haremos para mejorar la escalabilidad del sistema? de manera que puedan haber tantos métodos de logística como se quiera sin mayores modificaciones.

El Factory Method, nos puede ayudar en esta ocasión, es un patrón de diseño creacional listo para abstraer la lógica de la creación.

Ok, estamos listos para implementarlo.

Boat

En este caso, necesitamos pensar en cómo llamaremos de manera general al grupo que envuelve el camión o el bote. Quizás Transporte.

Truck

También necesitamos pensar en cómo llamaremos de manera general al grupo que envuelve la logística Terrestre y el Marítima. Quizás Logística.

Estamos listos.

Por la parte del Transporte tendríamos el siguiente diagrama:

Diagrama transporte

Y por la parte de Logística tendríamos el siguiente:

Diagrama Logistica

En mi GitHub podrán ver la implementación en Golang. Enlace
Muchas gracias por leer
Les dejo mis redes: Enlace

Imágenes y ejemplo tomado de: Enlace

Image of Timescale

🚀 pgai Vectorizer: SQLAlchemy and LiteLLM Make Vector Search Simple

We built pgai Vectorizer to simplify embedding management for AI applications—without needing a separate database or complex infrastructure. Since launch, developers have created over 3,000 vectorizers on Timescale Cloud, with many more self-hosted.

Read full post →

Top comments (0)

Postmark Image

Speedy emails, satisfied customers

Are delayed transactional emails costing you user satisfaction? Postmark delivers your emails almost instantly, keeping your customers happy and connected.

Sign up