이벤트가 발생하면 이벤트를 바라보고 있는 옵저버에게 변경된 데이터를 보내는 방식
fun main() {
EventPrinter().start()
}
interface EventListener{
fun onEvent(count : Int)
}
class Counter(var listener : EventListener){
fun count(){
for(i in 1..100){
if(i%5 == 0) listener.onEvent(i)
}
}
}
class EventPrinter : EventListener{
override fun onEvent(count : Int){
print("${count} ")
}
fun start(){
val counter = Counter(this)
counter.count()
}
}