zoukankan      html  css  js  c++  java
  • (Head First 设计模式)学习笔记(2) 观察者模式(气象站实例)

    以下内容转载请注明来自"菩提树下的杨过(http://blog.sqlsky.com)"

    应用概述:
    某气象站通过传感器实时测量气温/湿度/压力等数据,要求设计一个系统,能让多种类型的公告栏自动更新这些数据(本例中有二类公告板:实时显示气温/温度公告板,动态统计最高/最低气温公告板)

    解释:
    应用观察者模式,把气温数据做为一个主题(也称为可观察者),让其它公告板当做观察者,通过订阅主题(也称通过观察"可观察者")来得知最新的信息(当然,观察者们也可以方便的退订,从而停止自动更新)

    又一设计原则:
    为了交互对象之间的松耦合设计而努力。


    观察者接口
    Code

    公告板显示接口
    Code

    主题接口
    Code

    真正的气象数据"主题"
    Code

    观察者之"实时气温/湿度公告板"
    Code

    观察者之"动态统计最高/最低气温公告板"
    Code


    最终测试:
    Code

    运行结果:
     
    当前:气温23度,湿度15%
    统计:最高气温 23度 ,最低气温 23度

    当前:气温28度,湿度12%
    统计:最高气温 28度 ,最低气温 23度

    当前:气温30度,湿度14%
    统计:最高气温 30度 ,最低气温 23度

    当前:气温25度,湿度20%
    统计:最高气温 30度 ,最低气温 23度

    当前:气温18度,湿度22%

    作者:菩提树下的杨过
    出处:http://yjmyzz.cnblogs.com
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    RvmTranslator7.4.1-Clipping Box
    使用K-means和高斯混合模型对图像进行聚类
    Python小技巧
    利用SNAP软件进行Sentinel-1A卫星微波影像的预处理
    VScode编译C,头文件显示not found的解决方法
    深浅拷贝
    CSRF攻击:陌生链接不要随便点
    跨站脚本攻击(XSS)
    同源策略:为什么XMLHttpRequest不能跨域请求资源?
    HTTP/2:如何提升网络速度
  • 原文地址:https://www.cnblogs.com/yjmyzz/p/1192705.html
Copyright © 2011-2022 走看看