位置: 编程技术 - 正文

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

  • 进料加工贸易流程
  • 自有住房出租
  • 城镇土地使用税的计算公式
  • 预收账款属于什么科目借贷方向
  • 自然人扣缴系统初次登录怎么设置密码
  • 税控服务费减免政策
  • 新政府会计制度衔接预算会计需做好的账目清理工作有
  • 滴滴电子发票可以看到行程吗
  • 政府土地收储是什么意思
  • 小规模纳税人纳税申报表
  • 行政单位专项资金核算方法
  • 企业赔款可以抵税吗
  • 企业交税的钱用在哪里
  • 企业所得税季报营业收入,营业成本怎么填
  • 开票信息没有电话号码可以吗
  • 公司自用房屋怎样交税
  • 如何查询以前申诉进度
  • 增值税核算应设置的会计科目排序
  • 个体工商户季度申报报税流程
  • 企业房产税怎么申报缴纳流程
  • 出售单位车辆如何处理业务?
  • 暂估金额与发票金额的区别
  • 勒索病毒文件怎么恢复
  • 更改onedrive文件夹位置
  • VMware虚拟机中怎么复制粘贴
  • win10关闭端口号
  • PHP:pg_unescape_bytea()的用法_PostgreSQL函数
  • 报销差旅费怎么算
  • 进口付汇业务流程
  • 补缴税款计入什么科目
  • 存货非正常损失的所得税处理
  • 融资租入资产的入账价值可能是()
  • 融资租赁印花税怎么缴纳
  • mcu version
  • 带息应收票据会计处理
  • php关闭报错
  • 劳务公司成本核算方法选择什么
  • 企业进项税怎么查询
  • 职工福利费的作用
  • 高新企业做账有什么不同
  • mysql使用技巧
  • sql server中字符串常量只能用双引号括起来
  • sqlserver复制需要有实际的服务器名称
  • 加计抵减的其他收益免税吗
  • 企业申报纳税都交什么税
  • 建筑业清包工合同范本
  • 福利费14%的规定
  • 如何判定企业库存现金
  • 开出商业承兑汇票怎么做分录
  • 销售边角废料属于什么
  • 公司人事怎么办公积金提取流程?
  • 企业自建厂房需要有资质吗
  • 无形资产计入待摊费用
  • 税金及附加没有设置二级科目,有啥影响吗
  • 制造费用分配结转表
  • 借别人的承兑后期还现钱可以吗?
  • 小规模怎么申请核定征收
  • win8什么时候停止更新
  • windows active directory功能
  • iPhone怎么录制屏幕
  • 如何设置访问共享文件夹
  • linux命令行怎么用
  • window高级启动会怎么样
  • 电脑安装win8
  • win10激活过期有什么影响吗
  • windows10电脑屏保怎么取消
  • ExtJS Ext.MessageBox.alert()弹出对话框详解
  • 批处理执行bat文件
  • 禁止指定qq号登录怎么弄
  • python3 生成器
  • angularjs1.5
  • ja开发
  • 安卓焦点
  • unity控制相机旋转
  • android.view.window.addflags
  • 1、Android Studio创建android项目
  • python libnum
  • 园区地税局在哪里
  • 交强险和车船税网上购买
  • 国家税务总局服务中心
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设