位置: 编程技术 - 正文

设计模式In Android——观察者(Observer)模式_1(设计模式具有的优点)

编辑:rootadmin

推荐整理分享设计模式In Android——观察者(Observer)模式_1(设计模式具有的优点),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:设计模式有哪些,设计模式面试题 java,设计模式七大原则,设计模式原则,设计模式原则,设计模式七大原则,设计模式23模式介绍,设计模式六大原则,内容如对您有帮助,希望把文章链接给更多的朋友!

写在前面的话: 1,记录学习的过程,希望能够坚持下去。 2,代码Based On Android4.4;主要参考书籍《Head First 设计模式》

什么是观察者模式? 定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。

怎么设计一个观察者模式的程序? 确定两个核心对象:(《Head First》Chapter 2) a.主题(Subject.java,WeatherData.java):要实现register()/unregister(),notify()方法 b.观察者(Observer.java,CurrentConditionDisplay.java/StatisticsDisplay.java):要实现update()方法

确定这两个对象之间的关系: 主题对象管理某些数据,一旦数据发生改变,会主动向观察者进行通知,然而观察者不必向主题进行索取。 主题并不知道具体的观察者是谁,这是它们之间的关系。

原则

观察者模式是体现了“针对接口编程,而非针对实现编译”; 所以针对接口编译,我认为是把接口(Subject)或者接口的实现(WeatherData)作为参数,如public CurrentConditionsDisplayer(Subject weatherData)使用观察者模式的布告板可以动态的添加(register)。为了交互对象之间的松耦合设计而努力设计模式In Android——观察者(Observer)模式_1(设计模式具有的优点)

静态类图

代码实现 在测试类中,实例化一个WeatherData

在CurrentConditionsDisplayer的构造方法中,会调用WeatcherData.registerObserver方法,把已经注册进去。 在WeatherData.java实现registerObserver方法,就是把

在进行数据传递的方法notify()方法中,会遍历ArraryList逐个调用update()方法通知。 WeatherData.java

CurrentConditionsDisplayer.java中去显示

代码下载:代码

下节学习一下在Android里面,哪里使用Observer模式。

点击LinearLayout使用selector改变TextView字体颜色 LinearLayoutandroid:clickable=trueandroid:focusable=trueTextViewandroid:duplicateParentState=true/android:textColor=@drawable/selector_setting_txt/LinearLayout?xmlversion=1.0encoding=utf-8?selectorxml

android图表ichartjs android之ichartjs图表1.

JDK/ADT Android开发环境搭建 1.1JDK环境搭建安装Windows7(如果已有,可以跳过)去

标签: 设计模式具有的优点

本文链接地址:https://www.jiuchutong.com/biancheng/381093.html 转载请保留说明!

上一篇:android内存泄露优化总结(android内存泄露监测)

下一篇:点击LinearLayout使用selector改变TextView字体颜色(linearlayout布局怎么设置)

  • 出口货物备案单证目录在哪里
  • 小规模纳税人收到专票后如何处理
  • 小规模纳税人印花税怎样计算
  • 出口企业免抵税额在增值税申报表填写附表5
  • 违反有关规定擅自开设银行账户的
  • 无形资产研究阶段的支出全部费用化
  • 融资租赁承租人和出租人的会计处理
  • 存货暂估入账会引起存货账面价值发生增减变动吗
  • 发给一个人的说说
  • 企业利润怎么拿出来
  • 公司账户境外汇款
  • 废旧物资销售如何征税
  • 餐饮外卖的经营范围是什么项目
  • 今年交上年税审核要多久
  • 筹建期可以有收入吗
  • 授权费计入什么科目
  • 缴纳的教育费附加可以税前扣除吗
  • 临时设施需要验收吗
  • 医疗机构免征增值税如何申报
  • 结转电费成本会计分录
  • 事业单位接受捐赠的货币资金在财务会计中确认捐赠收入
  • 进价销售交增值税吗
  • 鸿蒙系统快捷键
  • 监控工程付款方式
  • 债券利息收入征税吗
  • 未分配利润转增股本规定
  • swoole如何使用
  • mediabrowser.exe是什么
  • php验证码扭曲效果怎么做
  • 小企业会计准则2023电子版
  • 莫斯塔尔古桥多高
  • 存货跌价准备是负数表示什么
  • php simple html dom parser
  • 出口退税需要提供什么
  • rsync连接
  • 汇率一般是以几位数来显示
  • xml 入门
  • 以前年度损益调整结转到本年利润吗
  • 稿酬的支付方式
  • 什么叫做归属
  • 织梦图片集如何调用
  • mongodb 分组计数
  • 预提费用会计科目
  • 公司福利费用会计分录
  • 收到报销单如何处理
  • msdn sql server
  • sql2008自动启动服务
  • 支付员工的餐费怎么入账
  • 一次还本付息债券定价公式
  • 应付账款账务处理中的错弊
  • 建筑业简易计税预交
  • 研发费用加计扣除的条件
  • 公司注销实收资本账务处理
  • 销售货款未收到会计分录
  • 纳税检查企业多缴企业所得税如何处理
  • 申报抵扣了不做账怎么处理?
  • 售后回租含手续费吗
  • 现值指数与净现值的关系
  • 增值税进项发票抵扣认证流程
  • 公对私转账有没有手续费
  • windows软件授权服务报告无法激活计算机
  • win10如何恢复
  • 步步简笔画
  • linux去掉文件换行符
  • windows7壁纸怎么恢复
  • Win7安装VPN软件后无法上网是什么原因如何解决
  • 基于HTML5和CSS3的响应式Web的设计与实现
  • 批处理禁用计算机
  • nodejs 导出excel
  • 安卓开发问题
  • unity只执行一次的方法
  • angular jsx
  • unity2019图集
  • jquery json对象
  • jquery获取页面元素
  • java script入门
  • 纳税人不如实申报税收怎么办
  • uk开票网络连接异常怎么回事
  • 重庆轨道第五轮19号线路
  • 医疗发票真伪查询
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设