`
szgaea
  • 浏览: 217535 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

观察者模式误解-容易理解错误的地方

阅读更多
   很多文章在说明观察者模式的时候喜欢把“回调”的概念加进来,“回调”本来就不好理解,以致于造成在学习观察者模式的时候也不好理解。今天我又看了一遍观察者模式,终于醒悟过来了,明白了。
    理解观察者模式首先明白会有两个概念,观察者和被观察者,一个对象可以被多个“观察者”所观察,所以“被观察者”与“观察者”是一个一对多的关系,以致“被观察者”中会有一个“观察者”的集合,我们可以向“被观察者”中注册“观察者”。
    因要实现多个“观察者”,所以需要一个接口来把“观察者”的共性规范好,以便于让“被观察者”调用。
    则有一个Observer的接口,定义“观察者”观察到“被观察者”的改变,自己想执行的行为。
    总而言之,就是“被观察者”发生变化后,会遍历“观察者”集合,去执行“观察者”的方法
分享到:
评论
4 楼 banfry 2010-03-11  
可不可以这样理解:
被观察者:房屋A,房屋B,房屋C,房屋D。。。
观察者:  当地的119
当某个房屋起火报警器响了之后,自动通知该119
3 楼 wandou 2010-02-21  
观察者模式就是回调。在c#里面就是事件。编程的基础方法,不会就不要当程序员害人。
2 楼 jashawn 2010-01-30  
回调和观察者模式在接口形式上看起来有点像,都是把一部分逻辑封装在一个对象里,再把这个对象作为方法的参数传入。
不同的是观察者模式里被观察的对象往往和被通知的对象是聚合甚至组合关系。
而回调则和被通知者可能只有简单又浅薄的关联关系。
1 楼 thomescai 2010-01-25  
总而言之,就是“被观察者”发生变化后,会遍历“观察者”集合,去执行“观察者”的方法

相关推荐

    Java编码规范及实践

    - **观察者模式**:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。 - **策略模式**:定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换...

    高质量C++编程指南

    例如,单例模式、工厂模式和观察者模式等,都是C++开发者应该熟悉的。 在性能优化方面,书中可能包含关于内存对齐、内联函数、常量表达式以及如何有效利用编译器优化选项的知识。理解这些技巧可以帮助开发者写出...

    c++ jingdian2.rar

    4. **Design Patterns Explained**:设计模式是软件工程中的重要概念,这本书解释了各种常见设计模式,如工厂模式、单例模式、观察者模式等,并展示了如何在C++中实现。理解并掌握这些模式,能提升代码的灵活性和可...

    西安交通大学软件工程专硕915考试个人总结的书上没有的知识点,易错点汇总

    3. **设计模式**:如工厂模式、单例模式、观察者模式等,不仅要熟悉它们的定义,还要能结合实际场景进行应用。 4. **软件质量保证与测试**:包括测试策略(单元测试、集成测试、系统测试、验收测试),测试用例设计...

    中学教师个人见习总结.docx

    - **寄语**:“没有快乐的地方,只有快乐的人”,鼓励实习生积极融入校园文化,保持乐观心态。 #### 三、“生本”教育理念 - **教育理念概述**:“生本”教育强调以学生为中心,注重培养学生的自主学习能力和创新...

    华为编程开发规范与案例

    2. **设计模式**:华为的开发案例中可能会涵盖常见的设计模式,如工厂模式、单例模式、观察者模式等。这些模式为解决特定问题提供了标准化的解决方案,有助于提升代码的复用性和可扩展性。 3. **异常处理**:有效的...

    初中议论文阅读理解与练习含答案解析.doc

    “议论文阅读理解与练习含答案解析” 议论文阅读理解是初中语文教学的重要组成部分,对学生的阅读理解能力和写作能力提出了很高的要求。议论文是以议论为主要表达方式的一种文体,它通过摆事实、讲道理、运用事实...

    2021年教师招聘考试题库《教育理论综合知识》考点巩固带答案解析_107.docx

    - **制度角度**:根据课程制定者的不同,可将课程划分为国家课程、地方课程和学校课程。 ### 23. 学习行为的评估 - **教学评价**:通过对学生学习行为的收集和分析,参照预定的教学目标,对学生的学习效果进行价值...

    100句记住7000单词

    这对于理解现代商业运营模式、市场营销策略以及顾客满意度的重要性等方面提供了有价值的见解。 ### 6. 地方人口越多,对水、交通和垃圾处理的需求就越大。 - **知识点**: **城市规划** - 人口密度与基础设施需求的...

    SCI论文各部分写作技巧-Results写作.zip

    最后,虽然Results部分主要是数据的呈现,但在适当的地方,可以插入简短的过渡句,帮助读者理解结果之间的关系。但切记,任何解释和讨论都应该留到Discussion部分进行。 总结来说,SCI论文Results部分的写作需注重...

    会议决议表-1页.pdf

    11. **参会人员**:列出参加会议的所有成员,可能包括决策者、执行者、观察员等,会签栏是他们确认已知会议决议的地方,表明他们对决议的理解和接受。 会议决议表的使用有助于确保决策的合法性,促进团队协作,并为...

    答辩PPT (178).pptx

    常见的方法包括文献调查法(查阅相关文献资料)、观察法(直接观察现象或行为)、思辨法(通过理性思考和逻辑推理)、行为研究法(研究个体或群体的行为模式)以及历史研究法(探究历史数据以理解现状)。...

    大学生1000字读书笔记_1.docx

    无论是对待犯罪者,还是帮助学习困难的学生,我们都应该用更加人性化的视角去观察和处理问题。教育不应该只是一场关于分数和规则的游戏,而应当是激发每个人潜能和兴趣的过程。在这个过程中,我们应当关注个体差异,...

    新人教版高二英语单词测试 Units6-7[精选].doc

    【知识点详解】 1. 荒谬的,荒唐的 adj....以上就是从【标题】"新人教版高二英语单词测试 Units6-7[精选].doc"和【描述】中所涵盖的英语单词和词组的详细解释,这些知识点对于学习和理解高二英语是非常重要的。

    《流行病学》综合练习题与答案.doc

    这份综合练习题涵盖了流行病学的多个核心概念和方法,旨在帮助学习者深入理解和掌握相关知识。 1. 流行病学:研究疾病、健康状态和相关事件在人群中的分布、决定因素以及预防控制的科学。 2. Secondary attack rate...

Global site tag (gtag.js) - Google Analytics