This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
wiki:pdd_9 [2024/09/23 00:51] – admin | wiki:pdd_9 [2024/09/24 21:49] (current) – admin | ||
---|---|---|---|
Line 60: | Line 60: | ||
* No acopla a los sujetos con sus observadores. En realidad, los sujetos — como '' | * No acopla a los sujetos con sus observadores. En realidad, los sujetos — como '' | ||
- | * Una vez implementado, | + | * Una vez implementado, |
+ | |||
+ | El código completo de la implementación del patrón se encuentra a continuación: | ||
+ | |||
+ | <code java> | ||
+ | |||
+ | import java.util.List; | ||
+ | import java.util.ArrayList; | ||
+ | import java.util.Iterator; | ||
+ | |||
+ | class Subject { | ||
+ | private List< | ||
+ | |||
+ | public void addObserver(Observer observer) { | ||
+ | observers.add(observer); | ||
+ | } | ||
+ | |||
+ | public void removeObserver(Observer observer) { | ||
+ | observers.remove(observer); | ||
+ | } | ||
+ | |||
+ | public void notifyObservers() { | ||
+ | Iterator it = observers.iterator(); | ||
+ | while (it.hasNext()) { | ||
+ | Observer obs= (Observer) it.next(); | ||
+ | obs.update(this); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | } | ||
+ | |||
+ | interface Observer { | ||
+ | public void update(Subject s); | ||
+ | } | ||
+ | |||
+ | |||
+ | class Temperatura extends Subject | ||
+ | | ||
+ | |||
+ | | ||
+ | | ||
+ | } | ||
+ | | ||
+ | | ||
+ | | ||
+ | } | ||
+ | } | ||
+ | |||
+ | class TermometroCelsius implements Observer | ||
+ | public void update(Subject s) { | ||
+ | double temp = ((Temperatura) s).getTemp(); | ||
+ | System.out.println(" | ||
+ | } | ||
+ | } | ||
+ | |||
+ | public class Main { | ||
+ | |||
+ | | ||
+ | Temperatura t = new Temperatura(); | ||
+ | t.addObserver(new TermometroCelsius ()); | ||
+ | t.setTemp(100.0); | ||
+ | } | ||
+ | |||
+ | } | ||
+ | |||
+ | |||
+ | </ | ||