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  }