Junior — Middle
Harakatli dizayn shablonining misolini keltira olasizmi?
sobes.tech AI
AIdan javob
Dasturiy ta'minot dizaynida xulq-atvor shablonining misoli — bu "Kuzatuvchi" (Observer) shablonidir. Bu, boshqa ob'ektning holatidagi o'zgarishlar haqida ko'p ob'ektlarni xabardor qilish zarur bo'lganda ishlatiladi.
Androidda, bu shablon LiveData va ViewModel bilan ishlashda ko'pincha qo'llaniladi, bu yerda View ma'lumotlar o'zgarishlariga yoziladi va avtomatik ravishda yangilanadi.
Kotlinda misol:
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("Holat yangilandi: $state")
}
}
fun main() {
val subject = Subject()
val observer = ConcreteObserver()
subject.attach(observer)
subject.state = 10
}