Junior — Middle
Ar galite pateikti elgesio dizaino pavyzdį?
sobes.tech AI
Atsakymas iš AI
Programinės įrangos dizaino elgsenos šablonas — tai "Stebėtojas" (Observer). Jis naudojamas, kai reikia informuoti daugelį objektų apie kito objekto būsenos pokyčius.
Android'e šis šablonas dažnai taikomas dirbant su LiveData ir ViewModel, kur View prenumeruoja duomenų pokyčius ir automatiškai atnaujinama.
Pavyzdys Kotlin kalba:
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("Būsenos atnaujinimas: $state")
}
}
fun main() {
val subject = Subject()
val observer = ConcreteObserver()
subject.attach(observer)
subject.state = 10
}