Este proyecto implementa el patrón de diseño Factory Method para crear y enviar notificacionespor medio de distintos medios como correo electrónico y SMS. El programa permite al usuario seleccionar el tipo de notificación que desea enviar, y si se elige una opción no valida, el sistema maneja el error adecuadamente.
La estructura de directorios es la siguiente:
.
│ index.js # Entrada del programa
│ package-lock.json # Arhivo de dependencias del proyecto
│ package.json # Archivo de bloqueo de dependencias
│ README.md # Archivo readme
│
└───clases/ # Carpeta para las clases de notificaciones
└───EmailNotification.js # Implemetación de notificaciones por correo electronico
└───Notificacion.js # Clase base de las notificaciones
└───NotificationFactory.js # Clase factory se encarga de crear la notificaciones
└───SMSNotification.js # Implemetación de notificaciones por SMS
Para correr el programa ectrba node index.js sobre la terminal donde esta abierto el programa El programa solicitara que seelccione el tipo de notificación que desea recibir 1 Para recir una notificaión por correo electronico 2 Para recibir una notificación por SMS En caso de no seleccionar una opción valida el programa arrojara un mensaje de error en la consola
************** Patron Factory ************** Seleccione una opcion de notificación:
- Correo electronico
- SMS Ingresa el numero de la opción (1 o 2): 1 📧 Enviando correo electronico: Este es un mensaje de prueba para email.
************** Patron Factory ************** Seleccione una opcion de notificación:
- Correo electronico
- SMS Ingresa el numero de la opción (1 o 2): 2 📱 Enviando SMS: Este es un mensaje de prueba para sms. PS C:\Users\Gaby_Contreras\patrones\factory>
************** Patron Factory ************** Seleccione una opcion de notificación:
- Correo electronico
- SMS Ingresa el numero de la opción (1 o 2): 3 ❌ Error: Tipo de notificación desconocido: 3 Ingresa el numero de la opción (1 o 2): 1 📧 Enviando correo electronico: Este es un mensaje de prueba para email. PS C:\Users\Gaby_Contreras\patrones\factory>
- Notification (clase base): Define la interfaz comun para todas las notificaciones con el metodo sendMessage(message).
- EmailNotification y SMSNotification (clases concretas): Extienden la clase base Notification e implementan el metodo sendMessage() para su canal correspondiente.
- NotificationFactory: Contiene el metodo estático createNotification(type), que crea y devuelve una instancia del tipo de notificación solicitado.
NotificationFactory.createNotification(type):
- Recibe como parametro el tipo de notificación (email o sms).
- Devuelve una instancia de la clase EmailNotification o SMSNotification.
- Si el tipo no es válido, lanza un error.
Al ser un tipo de patron creacional que a travez de una interfaz crea objetos en una seperclase, mientras permite a las subclases alterar el tipo de objeto que se crean. En en caso especifico de este programa se requiere de crear objetos de diferentes tipos (notificaciones), por la logica de creación en una fabriba centralizada, lo que facilita la escalabidad en dado caso que se requiera de añadir un nuevo moduo al programa de los ya eexixtentes (EmailNotificación y SMSNotification)