diff options
Diffstat (limited to 'de/unibayreuth/se/observer/Subject.java')
-rw-r--r-- | de/unibayreuth/se/observer/Subject.java | 30 |
1 files changed, 17 insertions, 13 deletions
diff --git a/de/unibayreuth/se/observer/Subject.java b/de/unibayreuth/se/observer/Subject.java index 2f0b5bb..659513e 100644 --- a/de/unibayreuth/se/observer/Subject.java +++ b/de/unibayreuth/se/observer/Subject.java @@ -1,21 +1,25 @@ package de.unibayreuth.se.observer; +import java.util.*; + public abstract class Subject { - // TODO + private List<Observer> observers; - public Subject() { - // TODO - } + public Subject() { + observers = new ArrayList<Observer>(); + } - void attach(Observer observer) { - // TODO - } + void attach(Observer observer) { + observers.add(observer); + } - void detach(Observer observer) { - // TODO - } + void detach(Observer observer) { + observers.remove(observer); + } - protected void fireUpdate() { - // TODO - } + protected void fireUpdate() { + System.out.println("Sending update to observers ..."); + for(Observer o : observers) + o.update(this); + } } |