Sobes.tech
Junior — Middle

¿Puedes dar un ejemplo de un patrón de diseño conductual?

sobes.tech AI

Respuesta de la IA

Un ejemplo de patrón de comportamiento en diseño de software es el patrón "Observador". Se utiliza cuando es necesario notificar a múltiples objetos sobre cambios en el estado de otro objeto.

En Android, este patrón se aplica frecuentemente al trabajar con LiveData y ViewModel, donde la vista se suscribe a cambios en los datos y se actualiza automáticamente.

Ejemplo en Kotlin:

class Subject {
    private val observers = mutableListOf<Observer>()
    var state: Int = 0
        set(value) {
            field = value
            notifyObservers()
        }

    fun attach(observer: Observer) {
        observers.add(observer)
    }

    private fun notifyObservers() {
        observers.forEach { it.update(state) }
    }
}

interface Observer {
    fun update(state: Int)
}

class ConcreteObserver : Observer {
    override fun update(state: Int) {
        println("Estado actualizado a: $state")
    }
}

fun main() {
    val subject = Subject()
    val observer = ConcreteObserver()
    subject.attach(observer)
    subject.state = 10
}