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
}