Sobes.tech
Junior — Middle

Kun je een voorbeeld geven van een gedragsontwerppatroon?

sobes.tech AI

Antwoord van AI

Een voorbeeld van een gedragspatroon in softwareontwerp is het "Observer"-patroon. Het wordt gebruikt wanneer meerdere objecten op de hoogte moeten worden gebracht van veranderingen in de toestand van een ander object.

In Android wordt dit patroon vaak toegepast bij het werken met LiveData en ViewModel, waarbij de View zich abonneert op dataveranderingen en automatisch wordt bijgewerkt.

Voorbeeld in 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("Staat bijgewerkt naar: $state")
    }
}

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