Sobes.tech
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
}