Реализации на Kotlin
Publisher-subscriber
Общая реализация на языке Kotlin
interface ISubscriber {
fun writeComment()
}
class GoodSubscriber : ISubscriber {
override fun writeComment() {
println("Subscriber writes positive comment in comment section.")
}
}
class NeutralSubscriber : ISubscriber {
override fun writeComment() {
println("Subscriber writes nothing.")
}
}
class BadSubscriber : ISubscriber {
override fun writeComment() {
println("Subscriber writes negative comment in comment section.")
}
}
class Publisher {
private val subs: MutableSet<ISubscriber> = mutableSetOf()
fun subscribe(subscriber: ISubscriber): Boolean = subs.add(subscriber)
fun unsubscribe(subscriber: ISubscriber): Boolean = subs.remove(subscriber)
fun doAction() {
println("Creating post")
for (sub in subs)
sub.writeComment()
}
}
fun main() {
val publisher = Publisher()
val goodSubscriber = GoodSubscriber()
val badSubscriber = BadSubscriber()
val neutralSubscriber = NeutralSubscriber()
publisher.subscribe(goodSubscriber)
publisher.subscribe(badSubscriber)
publisher.subscribe(neutralSubscriber)
publisher.doAction()
publisher.unsubscribe(badSubscriber)
publisher.doAction()
}
Last updated
Was this helpful?