Notification System
Se desea implementar un sistema de Notificaciones. El sistema debe poder enviar tres tipos de notificaciones: email, sms y push.
A continuación se muestra un diagrama de las classes a implementar:
---
title: Notification System
---
classDiagram
SMSNotification ..|> Notification
EmailNotification ..|> Notification
PushNotification ..|> Notification
class Notification {
+String destination
+Notification(String destination)
+abstract sendNotification(): void
+factory(String destination): Notification
}
class SMSNotification{
+sendNotification(): void
}
class EmailNotification{
+sendNotification(): void
}
class PushNotification{
+sendNotification(): void
}
Para facilitar su uso, se ha incluido un metodo factory en la clase Notification, que retorna un objeto de la
clase correspondiente según el parámetro destination recibido:
- Si el parámetro destination contiene una @, se retorna un EmailNotification
- Si el parámetro destination empieza por http, se retorna un PushNotification
- En cualquier otro caso, se retorna un SMSNotification
Las clases que implementan el método sendNotification(), por el momento, no es necesario que realicen la acción
de enviar la notificación; simplemente escriben por pantalla un mensaje.
A continuación se muestra un ejemplo de cómo se usaría la clase Notification:
public class Main {
public static void main(String[] args) {
Notification.factory("gerard@benigaslo.com").sendNotification();
Notification.factory("http://benigaslo.com/gerard").sendNotification();
Notification.factory("+34 678 789 890").sendNotification();
}
}
La salida sería la siguiente:
SENDING Email to: gerard@benigaslo.com
SENDING Push to: http://benigaslo.com/gerard
SENDING SMS to: +34 678 789 890