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
}