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
Mensajes de 160 caracteres máximo
Integración con servicio externo
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")