Sobes.tech
Junior — Middle

Мүмкүн болсо, жүрүм-турум үлгүсүнүн мисалын келтире аласызбы?

sobes.tech AI

AIден жооп

Программалык камсыздоо дизайнындагы жүрүм-турум үлгүсүнүн мисалы — "Көзөмөлчү" (Observer) үлгүсү. Ал башка объекттин абалынын өзгөрүшү жөнүндө көптөгөн объекттерди кабарлоо керек болгондо колдонулат.

Androidда бул үлгү LiveData жана ViewModel менен иштөөдө кеңири колдонулат, анда View маалыматтардын өзгөрүшүнө жазылат жана автоматтык түрдө жаңыланат.

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("Абалы жаңырды: $state")
    }
}

fun main() {
    val subject = Subject()
    val observer = ConcreteObserver()
    subject.attach(observer)
    subject.state = 10
}