package de.unibayreuth.se.observer; import java.util.*; public abstract class Subject { private List observers; public Subject() { observers = new ArrayList(); } void attach(Observer observer) { observers.add(observer); } void detach(Observer observer) { observers.remove(observer); } protected void fireUpdate() { System.out.println("Sending update to observers ..."); for(Observer o : observers) o.update(this); } }