位置: 编程技术 - 正文

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

  • 税务纳税等级m级是什么等级
  • 企业所得税的计算公式
  • 车船税保险公司会不会多收
  • 出口关税的计算基数
  • 进项和销项税额需要结转吗
  • 公司出售固定资产
  • 自产货物用于本企业在建工程交增值税不
  • 一般纳税人转让二手车增值税税率
  • 债务转为股份的协议
  • 减半征收企业所得税税率
  • 年中股东红利分录怎么写
  • 企业收到一笔钱不知道什么钱 如何做账
  • 外地预缴企业所得税汇算清缴退税
  • 企业所得税税前扣除异常
  • 运输发票上的印章怎么弄
  • 预提工资是什么科目
  • 分公司可以列为被告吗
  • 合伙项目如何进行分红
  • 增值税专用发票有效期是多长时间
  • 第一次申领发票可以增额吗?
  • 预收账款长期挂账如何处理
  • 即征即退和先征后退适用范围
  • linux开启
  • 财政拨款收入是指行政单位从哪里取得的预算资金
  • 苹果11怎么充不上电了
  • 讲述人功能怎么关闭
  • 纳税评估一般程序包括
  • win10平板模式怎么切换
  • ps工具栏失灵
  • 外贸企业申报出口退税的期限
  • 使用vue搭建项目
  • 递延所得税资产和负债怎么计算
  • 工程实践指的是
  • gym版本和render函数
  • 金税盘全额抵扣政策
  • 在建工程完工后转入哪里
  • 含消费税的商品开成了不含消费税怎么办
  • 会计科目设置怎么操作
  • 样品开发计划
  • 工程咨询属于什么服务业
  • 劳务工资缴税标准
  • 个体经营部能抵扣个税吗
  • 一般纳税人购入需要安装的生产设备,其入账价值包括
  • 营业外支出账户核算的主要内容有
  • 没有实收资本可以转让吗
  • 小型微利企业认定标准最新
  • 没有按时对账
  • 以现金形式发工资违法吗
  • 按照管理会计的解释,成本的相关性是
  • 印花税征税对象包括
  • 算账的意思是什么?
  • sql server 2005数据备份
  • 如何查看ubuntu系统的版本
  • win7回收站路径在哪里
  • XP系统怎么安装打印机
  • xp开机后蓝屏
  • ubuntu tcp
  • linux系统中网络配置文件一般放在
  • win8开机进入开始界面
  • ServiceLayer.exe - ServiceLayer是什么进程 有什么用
  • win8搜索不到文件
  • linux ps-l
  • 用VMware安装阿里linux
  • win10mobile最新版本
  • 慎用小儿百部止咳糖浆
  • 批处理命令修改ip
  • css各种滤镜的应用是什么
  • python图像移动
  • 调度器在操作系统中的作用
  • node mongoose
  • node ffi
  • unity热更新框架对比
  • js文字滚动代码
  • js function的this指向
  • JavaScript中的复杂数据类型又称为
  • centos6.5
  • 广东省税务局官网 国家税务总局
  • 开出去的专用发票存根怎么处理的
  • 成效显著的近义词和反义词
  • 2020年个税截止时间
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设