设计模式之观察者Demo

其实这个模式在我看来是个很简单的模式,就是被观察者如果有变化,就通知观察者行动,这里是一个比较简单的Demo,周杰伦要开演唱会,得通知粉丝啊,粉丝在收到这个通知后,做出一个行动。

先来定义周杰伦,需要让他实现Observable抽象类,代码如下:


public class ZhouJieLun extends Observable {
    public void KaiYanChangHui(){
        System.out.println("大家好,我下午开演唱会,请大家参加啊!");
        //得通知观察者啊
        super.setChanged();
        notifyObservers();
    }
}

再来定义两个粉丝,这两个粉丝需要实现Observer接口,如下:


public class FenSi1 implements Observer {
    @Override
    public void update(Observable o, Object arg) {
        System.out.println("粉丝1来了....");
    }
}
public class FenSi2 implements Observer {
    @Override
    public void update(Observable o, Object arg) {
        System.out.println("粉丝2来了....");
    }
}

再来看场景类,更简单:


public class Client {
    public static void main(String[] strings){

        //被观察者
        ZhouJieLun zhouJieLun=new ZhouJieLun();
        //观察者
        FenSi1 fenSi1=new FenSi1();
        FenSi2 fenSi2=new FenSi2();

        //为被观察者添加观察者
        zhouJieLun.addObserver(fenSi1);
        zhouJieLun.addObserver(fenSi2);

        //活动
        zhouJieLun.KaiYanChangHui();

    }
}

运行后,结果如下:

结果.png

关于这个模式,只需要知道让被观察者通知观察者就可以了,此处我借用的是Java本身提醒的类Observable与接口Observer。

你可能感兴趣的:(设计模式之观察者Demo)