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 程序,因为你业务都发生了变化。

  • 相关阅读:
    python练习册 每天一个小程序 第0006题
    python练习册 每天一个小程序 第0005题
    [happyctf]部分writeup
    python练习册 每天一个小程序 第0004题
    [实验吧](web)因缺思厅的绕过 源码审计绕过
    python练习册 每天一个小程序 第0002题
    poj2185 Milking Grid
    hdu1711 Number Sequence
    poj1961 Period
    lightOJ 1017 Brush (III) DP
  • 原文地址:https://www.cnblogs.com/jeanschen/p/3277696.html
Copyright © 2011-2022 走看看