Observer mode: defines one-to-multiple dependencies between objects. In this way, when an object changes state, all dependent objects are notified and automatically updated. 1. Define the event source interface [html] package com. pattern. observer; public interface Subject {public void registerObserver (Observer o); public void removeObserver (Observer o); public void policyobserver ();} 2. Define the event source [html] package com. pattern. observer; import java. util. arrayList;/*** event source */public class WeatherData implements Subject {private ArrayList observers; private float temperature; private float humidity; private float pressure; public WeatherData () {observers = new ArrayList ();}/*** @ see com. pattern. observer. subject # registerObserver (com. pattern. observer. observer) * // @ Override public void registerObserver (Observer o) {observers. add (o);}/*** @ see com. pattern. observer. subject # removeObserver (com. pattern. observer. observer) */@ Override public void removeObserver (Observer o) {int I = observers. indexOf (o); if (I> = 0) {observers. remove (I) ;}/ *** @ see com. pattern. observer. subject # policyobserver () */@ Override public void policyobserver () {for (int I = 0; I <observers. size (); I ++) {Observer observer = (Observer) observers. get (I); observer. update (temperature, humidity, pressure) ;}} public void measurementsChanged () {policyobserver ();} public void setMeasurements (float temperature, float humidity, float pressure) {this. temperature = temperature; this. humidity = humidity; this. pressure = pressure; measurementsChanged () ;}} 3. Define the observer interface [html] package com. pattern. observer; public interface Observer {public void update (float temp, float humidity, float pressure);} 4. Define the display interface [html] package com. pattern. observer; public interface DisplayElement {public void display () ;}5, observer implementation class [html] package com. pattern. observer; public class CurrentConditionsDisplay implements Observer, DisplayElement {private float temperature; private float humidity; private Subject weatherData; public CurrentConditionsDisplay (Subject weatherData) {this. weatherData = weatherData; weatherData. registerObserver (this);}/*** @ see com. pattern. observer. displayElement # display () */@ Override public void display () {System. out. println ("Current conditions:" + temperature + "F degrees and" + humidity + "% humidity");}/*** @ see com. pattern. observer. observer # update (float, float, float) */@ Override public void update (float temperature, float humidity, float pressure) {this. temperature = temperature; this. humidity = humidity; display () ;}6, test [html] package com. pattern. observer; public class WeatherStation {public static void main (String [] args) {WeatherData weatherData = new WeatherData (); CurrentConditionsDisplay currentDisplay = new CurrentConditionsDisplay (weatherData); weatherData. setMeasurements (80, 65, 30.4f );}}