Subject
+ attach(Observer)+dettach(Observer)+notify()+operation()
ConcreteObserver
- subject:ConcreteSubject
+ update()
setData(Data)notify()
AbstractSubject
- Observer:ArrayList
+ attach(Observer)+dettach(Observer)+notify()
Observer
ConcreteSubject
- data :String
+ operation()+setData(Data)+getData():Data