位置: 编程技术 - 正文

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

  • 营业现金比率是用经营活动净流入还是经营活动流入
  • 政府转让土地使用权
  • 外商投资的企业是民营企业吗
  • 哪些小规模纳税人可以自行开具增值税
  • 物资采购账务处理方法
  • 财产性收入是非劳动性收入吗
  • 一般纳税人从小规模纳税人处进货
  • 股东投资款是否可以现金支付
  • 资产拍卖税费谁承担
  • 公司厂房拆迁要交税吗
  • 漏提折旧可以所得税扣除吗
  • 个人所得税手续费奖励办税人员文件
  • 财政授权支付凭证后多久打款
  • 当月工资额什么意思
  • 股权转让以前年度怎么算
  • 转出未交增值税在借方是什么意思
  • 同一控制下的企业合并的会计核算方法
  • 国家征收苗木专业合作社成员土地,应该怎样出示证件
  • 不能抵扣的进项发票怎么做分录
  • 利息赔款是否缴纳企业所得税?
  • 企业购车按揭产生的费用
  • 公司购买五金用交税吗
  • 国内企业给国外企业开发票
  • Win11 Build 22000.132 预览版 ISO 官方镜像下载与安装
  • 如何在没有开瓶器的情况下开红酒
  • 股东之间转让股权需要股东会决议吗
  • 怎么通过mac地址访问设备
  • 税前扣除是好事吗
  • 增值税的具体内容包括
  • 如何做世界上最小的遥控飞机
  • 最好卖的游戏机排行榜
  • 带着崽崽宠老公免费阅读
  • 清算资金往来的余额方向
  • 小微企业所得税税收优惠政策2023年
  • 确认的政府补助利得可以确认为收入吗
  • 个体工商户有固话吗
  • 车费增值税税率
  • 预提工资的会计处理
  • 工业企业增值税税负多少合理
  • 企业哪些情况下需要报税
  • 税控系统技术维护费会计处理280
  • 小型企业需要给员工买社保吗
  • 支付运费的会计怎么记录运输费
  • 个人所得税逾期申报怎么办
  • 债券投资包含哪些
  • 收到员工交来的宿舍费
  • 现金预算包括哪些内容,来源是什么
  • 职工食堂的费用,会计上怎么做账?
  • 学校接受捐赠收入要交企业所得税吗
  • 新旧会计准则的科目区别
  • 小微企业可以享受六税两费吗
  • 医院收费票据可以入账吗
  • 纳税人的收入总额是什么
  • 小规模收入不超过多少不用交税
  • 机票行程单上没有金额怎么报销
  • 汇票本票支票的联系
  • mysql 5.7.13 winx64安装配置方法图文教程(win10)
  • win7激活失败提示错误代码0x80072F8F
  • 苹果手机价格
  • sar 命令
  • 如何强制退出当前程序mac
  • Win7/Win8/Win10单、多系统一键安装教程 只需30秒!
  • uca1
  • 微信付费使用是真的吗
  • win10 开始
  • windows7开机显示错误恢复进不去
  • centos 安装chia
  • linux怎么在桌面创建文件
  • cocos 源码
  • ExtJS GridPanel 根据条件改变字体颜色
  • android 游戏平台
  • unity中time.time
  • node爬取数据
  • [置顶]马粥街残酷史
  • javascript概述
  • jquery event
  • 3000劳务报酬如何缴税
  • 请问报考国家税务局难吗
  • 烟叶税额
  • 2022年广州社保基数
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设