位置: 编程技术 - 正文

设计模式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布局怎么设置)

  • 个体户需要做利润分析吗
  • 缴纳增值税会计账务处理
  • 预收预付科目是否已经取消
  • 电子税务局发票验旧怎么操作
  • 金蝶软件发票录入什么科目
  • 应缴纳的增值税计算公式
  • 社保和公积金是从工资里面扣吗
  • 固定资产处置残值收入要纳税
  • 接受捐赠材料支付的运费 扣除
  • 上一年度凭证不填可以吗
  • 下脚料回收
  • 税控技术服务费每年都可以抵扣吗
  • 小规模纳税人如何转一般纳税人
  • 关于330技术维护费
  • 不管金税四期上线与否,税务严查一刻也没有放松!
  • 不抵扣勾选怎么挽回
  • 会计差错更正的准则依据
  • 发票查出来显示不一致是为啥
  • 2020年开公司优惠政策
  • 财务费用包括哪些主要内容
  • 增值税系统技术维护费需要勾选吗
  • 取得劳务费的账务处理
  • 代订机票的电子专用发票可以抵扣吗
  • 公司预交一年的养老保险
  • 金税盘可以抵扣进项税吗
  • 保养费计入什么科目
  • 冲销多计提所得税
  • 工程项目成本费用的分类有哪些?
  • 【第十一届“泰迪杯”数据挖掘挑战赛】B题产品订单的数据分析与需求预测“解题思路“”以及“代码分享”
  • 刷题有什么作用
  • js倒计时函数
  • 社会团体所得税汇算清缴
  • 税务局开普票需要什么材料
  • 企业纳税人识别号是什么
  • 农产品核定进项
  • python中的threading模块
  • 车辆维修费如何赔偿
  • 收入不足3000
  • 什么是公司财务管理中的一个重要组成部分
  • 周转材料低值易耗品五五摊销法
  • 股东捐赠给企业怎么做账
  • 已付款未收到货怎么办
  • 电子承兑汇票做账看哪个日期
  • 开红字发票如何做分录?
  • 划转税务的非税收入包括
  • 结转损益不平是什么原因造成的
  • 本期应补退税额是什么意思
  • 航天信息开票软件客服
  • 开业前的装修费怎么做账
  • 事业单位无形资产摊销是当月还是下月
  • 账簿设置方法
  • 约当产量法下的加权平均法怎么算
  • sql的理解
  • win7系统默认输入法
  • 政府禁用windows8
  • ubuntu无法进入系统出现uid121
  • 火狐firefox浏览器华为
  • SSSvr.exe - SSSvr是什么进程
  • winxp和win7双系统
  • windowsxp回收站实际是
  • 怎么使用Win10自带绘画软件
  • 系统相机打不开
  • win7 运行慢
  • 系统自带邮件
  • node.js的作用是什么
  • 原生js实现节日变化
  • node遍历文件夹
  • hadoop有几个版本
  • jQuery实现表格文本框淡入更改值后淡出效果
  • jq 使用
  • java learning
  • javascript好学吗?
  • 北京24小时税务自助机
  • 郑州市国家税务局
  • 湖北省国家税务局历任局长
  • 湖南电子税务申报
  • 什么是坚持依法治国的重点任务和主体工程
  • 中级财务管理好难
  • 融资租赁 合同
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设