观察者模式
股票提醒: 当股票的价格上涨或下降5%时,会通知持有该股票的股民,当股民听到价格上涨的消息时会买股票,当价格下降时会大哭一场。
uml类图:

代码:
package org.Observer; public interface MyObserver { public void up(); public void down(); }
package org.Observer; public class Investor implements MyObserver{ private String name; public Investor(String name){ this.name=name; } @Override public void up() { System.out.println("股民"+name+"买股票"); } @Override public void down() { System.out.println("股民"+name+"大哭一场"); } }
package org.Observer; import java.util.ArrayList; public abstract class Subject { protected ArrayList observers=new ArrayList(); public void attach(MyObserver observer){ observers.add(observer); } public void detach(MyObserver observer){ observers.remove(observer); } public abstract void stockUp(); public abstract void stockDown(); }
package org.Observer; public class Stock extends Subject{ @Override public void stockUp() { System.out.println("股票上涨5%"); for(Object observer:observers){ MyObserver ob = (MyObserver) observer; ob.up(); } } @Override public void stockDown() { System.out.println("股票下降5%"); for(Object observer:observers){ MyObserver ob = (MyObserver) observer; ob.down(); } } }
浙公网安备 33010602011771号