Junior — Middle
Vai vari sniegt piemēru uzvedības dizaina paraugam?
sobes.tech AI
Atbilde no AI
Programmatūras dizaina uzvedības paraugs — tas ir "Novērotājs" (Observer). To izmanto, kad ir nepieciešams paziņot daudziem objektiem par cita objekta stāvokļa izmaiņām.
Android šis paraugs bieži tiek piemērots, strādājot ar LiveData un ViewModel, kur skats abonē datu izmaiņas un tiek automātiski atjaunināts.
Kotlin piemērs:
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("Stāvoklis ir atjaunināts uz: $state")
}
}
fun main() {
val subject = Subject()
val observer = ConcreteObserver()
subject.attach(observer)
subject.state = 10
}