位置: 编程技术 - 正文

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

  • 新办营利性医疗机构是否免征土地使用税和房产税?
  • 进口货物的完税价格不包括
  • 一般纳税人开具专票和普票的区别
  • 增值税留抵税额是什么意思
  • 印花税申报怎么采集
  • 一般纳税人简易计税可以抵扣进项税额吗
  • 上年数为负数,今年数为正数怎么算增减比率
  • 未签购销合同需不需要印花税
  • 出口收入账务处理
  • 转让财产收入征税吗
  • 个税申报包含哪些
  • 欠员工薪酬如何赔偿
  • 企业所得税权责发生
  • 账本印花税计税金额或件数怎么申报2023
  • 改建或新建建筑物含义
  • 取得赔偿款的发票可以抵扣吗
  • 报增值税怎么取消校验
  • 现金存入银行是付款还是转账
  • 建筑投资包括哪些
  • 发票和款未付可以抵扣吗
  • 土地使用税计税依据及计算方式
  • 超出经营范围开发票
  • 资产负债表总计数表示什么意思
  • 找发票抵工资
  • 其他应付款付款后分录
  • 往年亏损,今年盈利,是否计提盈余公积
  • 企业所得税调增调减项目比例
  • 如何在windows11上安装动态壁纸
  • 资产负债表中的固定资产怎么算
  • 完美解决怠速抖动加油就平稳
  • 债转股适用范围
  • PHP:Memcached::touch()的用法_Memcached类
  • 托收账款属于什么会计科目
  • 增值税专用发票怎么开
  • 用科目汇总表怎么登记总账
  • 未确认融资收益怎么理解
  • 工程完工后有关工作总结
  • 研发费用加计扣除新税收政策2023
  • php用mysql连接数据库并查询
  • 拉贾安帕特群岛地图中文版
  • php代码报错
  • 详解php匿名函数
  • 财务费用属不属于当期损益
  • 显示国家税务总局东莞分局打来电话是诈骗还是正规电话
  • html获取php数据
  • 如何用ps做半圆
  • java printing
  • python动态参数应用
  • c语言中如何防止函数重名
  • 税收筹划类型有哪几种
  • 小规模纳税人劳保用品可以抵扣吗
  • 股权投资都有哪些
  • 固定资产科目的期末余额,反映固定资产的原价
  • 个人写收据要写身份证号吗
  • 进项税都有什么
  • 疫情期间减免的养老保险算工龄吗
  • 工资不计提直接做管理费用可以吗
  • 贴现凭证的分录
  • 资产负债表日后期间是指
  • 成本类科目在哪里列式
  • 增资减资改变股东要交税吗
  • 银行退回转账
  • 固定资产开普票还是专票
  • 审计如何判断跨期
  • 邮寄发票的快递费走什么科目
  • 会计政策变更的追溯调整法和未来适用法
  • 工业企业发生的各项费用都应计入产品成本对不对
  • win7系统默认输入法
  • 简述linux几种主流发行版本及其特点
  • 生成系统健康报告怎么弄
  • win10玩上古世纪闪退
  • centos安装总结
  • cocos 2d x
  • cocoscreator lua
  • bat error
  • nodejs使用视频教程
  • 上海市税务官方网站网址
  • 湖北税务查询电话
  • 未到申报期可以提前抄税吗
  • 考公务员考国税局有什么要求吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设