观察者模式

 下面我以大白话的讲述 跟大家分享一下观察者模式,

举个例子狗仔队和明星的关系,实际上他们之间是一种寄生的关系,没有明星就没有狗仔队的饭,没有狗仔队明星也火不了。怎末火呢,暗中操作 ,明星提前通知狗仔队我要去干嘛,你过来拍我,爆料,其实这就是一种观察者模式。

定义一个接口:gouzai

public interface Gouzai {

  //发表微博的方法
    void fabiaoweibo();
}
//小张gouzai的实现类

public class Xiaozhang implements Gouzai {

    public void fabiaoweibo() {
        System.out.println("发表文章");
    }
    
}
//定义一个网红的接口

public interface Wanghong {

//遛狗方法
    void liugou();

//张大爷出门遛狗通知狗仔
    void addGouzai(Gouzai gouzai);
}

//张大爷是个网红
public class Zhangdaye implements Wanghong{

  // 存放狗仔队接口
    private List<Gouzai> gouzais=new ArrayList<>();
  //张大爷出门遛狗 通知狗仔发表微博
    public void liugou() {
        System.out.println("张大爷出门遛狗了");
        for (Gouzai gouzai : gouzais) {
            gouzai.fabiaoweibo();
        }
    }
    public void addGouzai(Gouzai gouzai) {
        gouzais.add(gouzai);
    }

}
接下类我们定义一个测试类

 public class Test {
    public static void main(String[] args) {


        Zhangdaye zhangdaye = new Zhangdaye();

    //张大爷出门遛狗通知狗仔 小张啊 我要出门遛狗了 赶紧来看看我
        zhangdaye.addGouzai(new Xiaozhang());
       //张大爷出门遛狗   小张发表微博

    在我们看来 是有人监视着张大爷 出门就有人 偷拍他  实际上 是张大爷告诉狗仔  他要干什么事情的时候通知了 你一声

这个模式就叫做观察者模式。
        zhangdaye.liugou();
    }
}

以上仅仅个人一点理解 不足之处 大家多多指点



 

原文地址:https://www.cnblogs.com/xiaowazi/p/9084378.html