github.com/acornpublishing/functional-programming-go@v0.0.0-20220401005601-c3bd3786d5a1/Chapter06/03_observer/main.go (about) 1 package main 2 3 import ( 4 . "observer" 5 ) 6 7 func main() { 8 9 subject := Subject{} 10 oa := Observable{Name: "A"} 11 ob := Observable{Name: "B"} 12 subject.AddObserver(&Observer{}) 13 subject.NotifyObservers(oa, ob) 14 15 oc := Observable{Name: "C"} 16 subject.NotifyObservers(oa, ob, oc) 17 18 subject.DeleteObserver(&Observer{}) 19 subject.NotifyObservers(oa, ob, oc) 20 21 od := Observable{Name: "D"} 22 subject.NotifyObservers(oa, ob, oc, od) 23 }