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

抽象目标类:
package com;
public class ConcreteSubject extends Subject{
@Override
public void attach(Observer observer) {
observers.add(observer);
}
@Override
public void detach(Observer observer) {
observers.remove(observer);
}
@Override
public void down() {
for (Object obs:observers){
((Observer)obs).cry();
}
}
@Override
public void up() {
for (Object obj:observers){
((Observer)obj).buy();
}
}
}
具体目标类
package com;
import java.util.ArrayList;
public abstract class Subject {
protected ArrayList observers= new ArrayList();
public abstract void attach(Observer observer);
public abstract void detach(Observer observer);
public abstract void down();
public abstract void up();
}
抽象观察者类:
package com;
public interface Observer {
void buy();
void cry();
}
具体观察这类:
package com;
public class humin implements Observer{
@Override
public void buy() {
System.out.println("股票上涨,购入");
}
@Override
public void cry() {
System.out.println("股票下跌,哭");
}
}
客户端
package com;
public class Client {
public static void main(String[] args) {
Observer gumin1,gumin2,gumin3;
gumin1=new humin();
gumin2=new humin();
gumin3=new humin();
Subject gupiao =new ConcreteSubject();
gupiao.attach(gumin1);
gupiao.attach(gumin2);
gupiao.attach(gumin3);
gupiao.up();
gupiao.down();
}
}

浙公网安备 33010602011771号