December Ron McFadyen1 sf:SaleFrame1s:Salepropertylisteners:Object initialize(s:Sale) attach(sf) add (sf) Figure Replace addPropertyListener with attach
December Ron McFadyen2 s:Salepropertylisteners:Object * :update (s, “sale.total”, total) Figure notify (“sale.total”, total) setTotal (total) Replace publishPropertyEvent with notify Replace onPropertyEvent with update
December Ron McFadyen3 setText (value.toString() Figure update (source, name, value) :SaleFrame1saleTextField:JTextField Replace onPropertyEvent with update
December Ron McFadyen4 TrafficLight > Observer * PhotoCameraRadarUnit > Subject Attach() Detach() Notify() Attach() Detach() Notify() changeToRed() update() takePhoto() update() measureSpeed() update() TrafficLight is a subject/publisher and implements the Subject interface. PhotoCamera and RadarUnit are observers and implement the Observer interface. A subject must know it observers (notice multiplicity and navigability).