package example4_2; import java.util.ArrayList; import java.util.Random; /** * Author: Josiah Yoder et al. * Class: SExxxx-xx * Date: 1/7/14 7:45 AM * Lesson: Week x, Day x */ public class Example implements Subject { double positionMeters = 0; ArrayList observers = new ArrayList(); @Override public void attach(Observer obs) { observers.add(obs); } @Override public void detach(Observer obs) { //To change body of implemented methods use File | Settings | File Templates. } @Override public void notifyObservers() { for(Observer obs : observers) { obs.update(positionMeters); } } public static void main(String[] ignored) { Example ex = new Example(); ex.run(); } public void run() { Observer obs1 = new PrintingObserver(); Random gen = new Random(); this.attach(obs1); for(int i= 0; i<10; i++) { positionMeters += gen.nextDouble(); notifyObservers(); // System.out.println("Now we are at: "+positionMeters); } } }