位置: 编程技术 - 正文

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

  • 分公司亏损总公司可以弥补吗
  • 代扣代缴个人所得税手续费返还 增值税
  • 税前利润是什么利润
  • 所得税是什么意思
  • 汽油费通行费等怎么记账
  • 由商场代收营业费怎么算
  • 工程保险谁负责
  • 收入纳税明细里的收入是税前还是税后
  • 权益法核算的好处
  • 计划成本法领用原材料会计分录
  • 增值税月末结转摘要写什么
  • 劳务派遣个人所得税
  • 成品盘盈盘亏的会计分录
  • 多缴纳的税款不退税怎么入账
  • 企业将自用设备进行出租
  • 个体户如何报年报
  • 建筑业外出经营管理办法
  • 物业公司怎么开展业务
  • 借款余额在借方说明什么
  • 什么是劳动保护费支出
  • 每期折旧怎么算
  • 公司注销后银行账户怎么注销
  • 不动产进项税额怎么算
  • 物业费分摊会计分录
  • 盘点固定资产
  • 先预支后报销如何填写报销单需要老板签字吗
  • 如何理解增值税的三种类型?它们的区别是什么?
  • 设备维修费增值税
  • 开机要按f1才能进系统
  • 笔记本显示器分辨率无法调整怎么办
  • 免购车税政策
  • 前端promise封装
  • js前端路由
  • ChatDoctor本地部署应用的实战方案
  • vite搭建vue3
  • acc字幕文件怎么转换srt字幕
  • yolov5画框重复、大框包小框问题解决,c++、python代码调用onnx
  • 无形资产转让手续怎么办
  • 资产支出加权平均数和一般借款本金加权平均数
  • 对公账户名称可以是个人名字吗
  • 防伪税控可以做什么
  • 小规模纳税人网上报税
  • 外币交易的会计分录怎么写
  • 招待费专票不可以抵扣
  • 劳务费发票是个人的吗
  • 小公司没有财务软件怎么手工记账
  • 买电脑怎么做账
  • 其他应付款冲账分录
  • 差额征收的有哪些
  • 应付账款是赊销方式吗
  • 百分百控股收益都是股东的么
  • 什么是现金等价物
  • 纳税申报怎么查
  • centos7安装MySQL5.6
  • win8升级win10系统会卡吗
  • VMware虚拟机中卸载java命令
  • win8进入传统界面
  • linux中的awk命令详解
  • 英雄联盟支持win7
  • xp启用telnet
  • win8查看内存
  • 微软官方屏蔽更新工具
  • win10安装autocad2016错误
  • android自定义搜索框
  • nodequery
  • nodejs settimeout异步
  • js解析机制
  • 网页中经常用到的代码
  • 基于javascript的毕业设计
  • ajax支持浏览器back按钮吗
  • python字典x in d
  • jQuery Ajax和getJSON获取后台普通json数据和层级json数据用法分析
  • js 自执行
  • 江苏国税申报
  • 重庆电子税务局怎么绑定办税人员
  • 税控盘离线开票时间超限是怎么回事
  • 个人所得税减免申报操作流程
  • 2013年报废车流程
  • 广州天河东路税务局地址
  • 汽车票用什么查
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设