JAVA语言设计模式之观察者模式&责任链模式实例讲解
小标 2018-12-26 来源 : 阅读 1571 评论 0

摘要:本文主要向大家介绍了JAVA语言设计模式之观察者模式&责任链模式实例讲解,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。

本文主要向大家介绍了JAVA语言设计模式之观察者模式&责任链模式实例讲解,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。


观察者模式


定义


当一个对象的状态发生改变时,所有依赖于它的订阅者都会收到通知。


应用场景


场景一:关联行为场景


场景二:事件多级触发场景


场景三:跨系统消息交互场景(例如:消息队列、事件总线)


Android开发:RxJava、Eventbus等等…


角色


角色一:被观察者->Observable(目标对象)


角色二:具体被观察者


角色三:观察者->Observer


角色四:具体观察者


观察者模式设计及实现


1.被观察者设计 observable 使用泛型传入数据 且提供三个方法和持有观察者引用,维护观察者


2.具体观察者 提供更新数据的方法


3.单例模式 提供被观察者对象实例


说明:这里没有严格按角色设计,而是使用单例模式,目的是方便观察者的注册与反注册


责任链模式


定义


责任链模式是一种对象的行为模式。在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得系统可以在不影响客户端的情况下动态地重新组织和分配责任。


应用场景


多个对象可以处理同一请求,但是由哪个对象处理则在运行时动态决定


角色


角色一:Handler(抽象处理角色)


角色二:ConcreteHandler(具体处理角色)


角色三:Request(抽象请求角色)


角色四:ConcrateRequest(具体请求对象)


设计与实现


抽象处理角色设计——持有下一个处理请求的对象,提供处理事件的方法 具体角色设计 ——–继承抽象角色类,重写方法 抽象请求设计——–提供请求能容的方法 具体请求设计———继承或实现抽象请求


说明,GitHub 上Demo 表面上没有Request 这个类,或者说表面上没有抽象请求和具体请求,其实 这个“请求”就是handler处理消息的一个参数,这里我直接使用了字符串做参数


          

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注编程语言JAVA频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 1
看完这篇文章有何感觉?已经有1人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程