• (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
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    迷你图标集大集合:5000+ 30套免费的图标(不得不下,设计必备)
    Github简介
    Sublime Text 3 文本编辑器
    FusionCharts V3图表导出图片和PDF属性说明(转)
    FusionCharts参数的详细说明和功能特性(转)
    SQL 数据结构操作语句
    SQL Server 2008 各种DateTime的取值范围
    Datagrid数据导出到excel文件的三种方法
    开发环境
    如何利用ThoughtWorks.QRCode 生成二维码
  • 原文地址:https://www.cnblogs.com/yjmyzz/p/1192705.html
Copyright © 2020-2023  润新知