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
}