Junior — Middle
Poți oferi un exemplu de model de proiectare comportamental?
sobes.tech AI
Răspuns de la AI
Un exemplu de model comportamental în proiectare este modelul "Observator". Este utilizat atunci când trebuie să notifici mai multe obiecte despre schimbările de stare ale unui alt obiect.
În Android, acest model este adesea aplicat atunci când se lucrează cu LiveData și ViewModel, unde View se abonează la modificările datelor și se actualizează automat.
Exemplu în 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("Starea a fost actualizată la: $state")
}
}
fun main() {
val subject = Subject()
val observer = ConcreteObserver()
subject.attach(observer)
subject.state = 10
}