sms

Implementación: SMSNotificacion

Clase SMSNotificacion

class SMSNotificacion(val proveedor: String) : Notificacion {
    private var estadoEnvio = "Pendiente"
    private var exito = false
    // Sobrescribir propiedad de la interface
    override val tipo: String = "SMS"
    override fun enviar(destinatario: String, mensaje: String) {
        println("📱 Enviando SMS vía: $proveedor")
        println("   Número: $destinatario")
        // Limitar a 160 caracteres
        val mensajeCorto = mensaje.take(160)
        println("   Mensaje: $mensajeCorto")
        estadoEnvio = "Entregado"
        exito = true
    }
    override fun obtenerEstado(): String = estadoEnvio
    override fun fueExitoso(): Boolean = exito
}

info Cada implementación tiene su propia lógica de negocio

Diferencias con Email

short_text

Longitud Limitada

Mensajes de 160 caracteres máximo

business

Proveedor SMS

Integración con servicio externo

phone_android

Formato Específico

Número de teléfono como destinatario

compare_arrows Mismo Contrato, Diferente Implementación

Ambas clases cumplen la interface Notificacion pero con comportamientos distintos

code Ejemplo:

val sms = SMSNotificacion("Twilio")
sms.enviar("+34612345678", "Tu código es 1234")