import java.util.ArrayList; import java.util.List; /** * 觀察者模式 * @author TMAC-J * 牽一發而動全身來形容觀察者模式在合適不過了 * 分為拉模式和推模式,這裡不詳細說了 */ public class ObserverPa... ...
import java.util.ArrayList; import java.util.List; /** * 觀察者模式 * @author TMAC-J * 牽一發而動全身來形容觀察者模式在合適不過了 * 分為拉模式和推模式,這裡不詳細說了 */ public class ObserverPattern { interface IObserved{ void addObserver(IObserver observer); void removeObserver(IObserver observer); void notifyObservers(); } public class Observed implements IObserved{ private List<IObserver> observers = new ArrayList<IObserver>(); @Override public void addObserver(IObserver observer) { observers.add(observer); } @Override public void removeObserver(IObserver observer) { observers.remove(observer); } @Override public void notifyObservers() { for(IObserver observer:observers){ observer.update(); } } } interface IObserver{ void update(); } public class Observer implements IObserver{ @Override public void update() { System.out.println("do update..."); } } public void test(){ IObserved observed = new Observed(); IObserver observer = new Observer(); observed.addObserver(observer); observed.notifyObservers(); } }