Sobes.tech
Junior — Middle

Pouvez-vous donner un exemple de modèle de conception comportementale?

sobes.tech IA

Réponse de l'IA

Un exemple de modèle comportemental en conception est le modèle "Observateur". Il est utilisé lorsque vous devez notifier plusieurs objets des changements d'état d'un autre objet.

Dans Android, ce modèle est souvent utilisé avec LiveData et ViewModel, où la vue s'abonne aux changements de données et se met à jour automatiquement.

Exemple 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("État mis à jour à : $state")
    }
}

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