zoukankan      html  css  js  c++  java
  • Observer模式

      见电子文档。李斯 韩非子。

    package com.cbf4life.advance2;
    /**
    * @author cbf4Life cbf4life@126.com
    * I'm glad to share my knowledge with you all.
    * 这个Client就是我们,用我们的视角看待这段历史
    */
    public class Client {
    public static void main(String[] args) {
    //三个观察者产生出来
    Observer liSi = new LiSi();
    Observer wangSi = new WangSi();
    Observer liuSi = new LiuSi();
    //定义出韩非子
    HanFeiZi hanFeiZi = new HanFeiZi();
    //我们后人根据历史,描述这个场景,有三个人在观察韩非子
    hanFeiZi.addObserver(liSi);
    hanFeiZi.addObserver(wangSi);
    hanFeiZi.addObserver(liuSi);
    //然后这里我们看看韩非子在干什么
    hanFeiZi.haveBreakfast();
    第    187    页
    您的设计模式
    }
    }
    运行结果如下:
    韩非子:开始吃饭了...
    李斯:观察到李斯活动,开始向老板汇报了...
    李斯:报告,秦老板!韩非子有活动了--->韩非子在吃饭
    李斯:汇报完毕,秦老板赏给他两个萝卜吃吃...
    王斯:观察到韩非子活动,自己也开始活动了...
    王斯:因为韩非子在吃饭,——所以我悲伤呀!
    王斯:真真的哭死了...
    刘斯:观察到韩非子活动,开始动作了...
    刘斯:因为韩非子在吃饭,——所以我快乐呀!
    刘斯:真被乐死了
    好了,结果也正确了,也符合开闭原则了,也同时实现类间解耦,想再加观察者?好呀,继续实现
    Observer 接口就成了,这时候必须修改 Client 程序,因为你业务都发生了变化。

  • 相关阅读:
    如何提高英阅读英文技术资料
    如何阅读英语文章
    vijosP1223麦森数
    vijosP1359 Superprime
    vijosP1319 数列
    vijosP1447 开关灯泡
    vijosP1164 曹冲养猪
    vijosP1016 北京2008的挂钟
    洛谷P1457 城堡(The Castle)
    洛谷P1294 高手去散步
  • 原文地址:https://www.cnblogs.com/jeanschen/p/3277696.html
Copyright © 2011-2022 走看看