• 观察者模式


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

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

    定义一个接口: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();
        }
    }

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



     

  • 相关阅读:
    2、react-生命周期1※※※
    4.vue class 绑定- model基础应用
    1.react的基础
    Leetcode 5429 数组中的 k 个最强值
    leetcode 21.合并两个有序链表(迭代)
    【Postman请求无响应】Can not get any response
    【PageHelper】插件不生效的原因及解决办法
    【fasterxml.jackson】字段(反)序列号问题Access.WRITE_ONLY
    【SpringCloud-Maven】依赖版本比对
    【Charles】抓包工具使用
  • 原文地址:https://www.cnblogs.com/xiaowazi/p/9084378.html
Copyright © 2020-2023  润新知