Skip to content

Instantly share code, notes, and snippets.

@sorin-ref
Created June 18, 2020 07:43
Show Gist options
  • Select an option

  • Save sorin-ref/7e6caf2a834c09acbb27fae33d94076c to your computer and use it in GitHub Desktop.

Select an option

Save sorin-ref/7e6caf2a834c09acbb27fae33d94076c to your computer and use it in GitHub Desktop.
class Service {
init(_ name: String = "default") {
self.name = name
}
var name: String
func doSomething(_ info: Int) {
somethingWasDone.raise(info)
}
var somethingWasDone = Event<Int>()
deinit {
print("Service deinit")
}
}
class Client {
init(_ name: String, subscribingTo service: Service) {
self.name = name
self.service = service
service.somethingWasDone.addHandler(somethingWasDoneHandler)
}
var name: String
var service: Service
lazy var somethingWasDoneHandler = EventHandler<Int> { [name] argument in
print(name, "observes that something was done about", argument)
}
deinit {
print("Client deinit")
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment