`

设计模式 - Observer

阅读更多

现在上班真的很麻烦,天天早上做公交车上班,人非常的多,都上不了车,等上车后,每到站,列车员就报站,然后乘客就有不同的动作,有人急忙下车,有人继续悠闲的看着报纸。这里体现了一个显示的观察者模式,列车员,乘客分别代表了二种不同的。

GOF定义:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时, 所有依赖于它的对象都得到通知并被自动更新

角色描述:

Subject:抽象的目标角色

Observer:抽象的观察者角色

ConcreteSubject:具体的目标角色

ConcreteObserver:具体的观察者角色

实用性

  • 当一个抽象模型有两个方面, 其中一个方面依赖于另一方面。将这二者封装在独立的对象中以使它们可以各自独立地改变和复用。
  • 当对一个对象的改变需要同时改变其它对象, 而不知道具体有多少对象有待改变。
  • 当一个对象必须通知其它对象,而它又不能假定其它对象是谁。换言之, 你不希望这些对象是紧密耦合的。
  • 分享到:
    评论
    2 楼 netliving 2008-03-07  
    可以通过抽象目标在接受到事件以后扫描所有观察者实现的方式来完成,制定好过滤器就可以了。
    1 楼 jomper 2008-03-07  
    我关心的是,如何在无入侵的情况下,实现任意对象observable。

    相关推荐

      设计模式-观察者模式-作业-observer.zip

      观察者模式(Observer Pattern)是软件设计模式中的行为模式之一,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。这种模式常用于实现事件驱动或发布-...

      程序3_POD-Observer程序_observerbased_POD_气动力辨识_POD-Observer_

      这个标题揭示了一个专门针对气动力学参数识别的软件或算法,其中POD(主元分解,Principal Component Analysis)和Observer(观测器,Observer-Based)是两个关键的技术。 【描述】"基于POD-Observer方法的气动力...

      设计模式培训-observer

      ### 设计模式培训-observer #### Observer模式简介与应用场景 观察者模式(Observer Pattern),又称为发布-订阅模式,是一种行为设计模式,用于定义对象之间的依赖关系,其中一个对象(主题)的状态变化会自动...

      C++设计模式--基于Qt4开源跨平台开发框架

      《C++设计模式--基于Qt4开源跨平台开发框架》一书主要探讨了如何在C++编程中利用设计模式,并结合Qt4框架进行高效的跨平台应用开发。设计模式是软件工程中的重要概念,它们是经过时间和实践验证的解决特定问题的模板...

      设计模式培训-observer.pdf

      在众多设计模式中,观察者模式(Observer Pattern)是一种行为型设计模式,它允许一个对象在状态发生改变时通知多个依赖对象,从而实现对象间的解耦。本篇将深入探讨观察者模式的核心概念、实现原理及应用案例,旨在...

      Python库 | django-observer-0.3rc4.tar.gz

      观察者模式是一种设计模式,允许对象之间进行一对多的依赖关系设置,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。在Web开发中,这种模式可以用于实时数据更新、事件监听等场景。 0.3rc...

      C#设计模式-吕震宇

      设计模式(19)-Observer Pattern 设计模式(18)-Command Pattern 设计模式(17)-Chain of Responsibility Pattern 设计模式(16)-Bridge Pattern 设计模式(15)-Facade Pattern 设计模式(14)-Flyweight...

      java设计模式---诙谐易懂版

      根据给定文件内容,以下是关于Java设计模式的知识点说明: 1. 策略模式(Strategy Pattern)是一种行为设计模式,允许在运行时选择算法的行为。策略模式的意图是定义一系列算法,将每个算法封装起来,并使它们可以...

      Laravel开发-laravel-observer-generator

      模型观测器是Laravel中的一个设计模式,用于监听并响应模型的各种生命周期事件。例如,当用户保存一条记录时,我们可能希望发送一封确认邮件或者执行一些数据清理工作。模型观测器允许我们在一个单独的类中定义这些...

      Laravel开发-make-observer-command

      观察者模式是设计模式的一种,它允许我们定义订阅者(Observer)和发布者(Subject)之间的依赖关系,使得当发布者状态改变时,所有订阅者都能得到通知并自动更新。 标题中的“Laravel开发-make-observer-command”...

      Observer设计模式实例

      Observer设计模式,也被称为“发布-订阅”(Publish-Subscribe)模式或“依赖倒置”模式,是软件设计中的一种行为模式。它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到...

      设计模式精解-GoF-23种设计模式解析--附C++源代码

      设计模式是软件工程中的一种最佳实践,用于解决在软件开发过程中常见的问题。这些模式是由Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides四位大师,通常被称为GoF(Gang of Four),在他们的经典著作...

      Ext official doc - class-event-observer

      在Ext中,类事件观察者(Class Event Observer)是一种设计模式,它允许类级别的事件订阅和发布。这意味着你可以在类定义阶段就设置事件监听器,而不是在实例化对象后。这种模式提高了代码的可维护性和灵活性,因为...

      《设计模式--基于C#的工程化实现及扩展》.(王翔)_《0528》.rar

      《设计模式--基于C#的工程化实现及扩展》是一本深入探讨软件设计模式的书籍,作者王翔通过C#语言来阐述各种设计模式的工程化应用和拓展。设计模式是软件开发中的一种最佳实践,它总结了在特定场景下解决常见问题的...

      Laravel开发-laravel-transaction-observer

      观察者模式是一种设计模式,它定义了对象间的一种一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并被自动更新。在Laravel中,观察者常用于监听模型事件,如`created`, `updated`, `...

      Laravel开发-artisan-observer-maker

      观察者模式是一种设计模式,它允许我们定义一组订阅者,当对象的状态发生变化时,这些订阅者会自动收到通知并执行相应的操作。在Laravel中,观察者用于监听和响应Eloquent模型事件,例如`created`, `updated`, `...

      JAVA设计模式-chm版

      Java设计模式是软件开发中的一种最佳实践,它总结了在解决特定问题时程序员们经常采用的有效方法。这个“JAVA设计模式-chm版”资源显然包含了关于Java设计模式的详细信息,便于理解和应用。设计模式是对常见问题的...

      Java 设计模式-观察者模式(Observer)

      结合微信公众号讲解观察者模式,生动形象,关键是上手快啊

      02-observer-pattern

      在"head-first-design-pattern—02-observer-pattern"中,作者可能通过对比错误的实现和标准的实现方式来深入解释观察者模式的核心概念。错误的实现通常会暴露出模式在实际应用中可能遇到的问题,如效率低下、代码...

    Global site tag (gtag.js) - Google Analytics