Junior — Middle
Μπορείς να δώσεις ένα παράδειγμα προτύπου συμπεριφορικού σχεδιασμού;
sobes.tech AI
Απάντηση από AI
Ένα παράδειγμα συμπεριφορικού μοτίβου σχεδίασης είναι το μοτίβο "Παρατηρητής". Χρησιμοποιείται όταν πρέπει να ειδοποιούνται πολλά αντικείμενα για αλλαγές στην κατάσταση ενός άλλου αντικειμένου.
Στο Android, αυτό το μοτίβο εφαρμόζεται συχνά κατά την εργασία με LiveData και ViewModel, όπου η προβολή εγγράφεται στις αλλαγές δεδομένων και ενημερώνεται αυτόματα.
Παράδειγμα σε 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
}