当前位置: 首页 > 知识库问答 >
问题:

为什么我们需要观察者模式?

阎丰
2023-03-14

message,这三个类从它继承:fax、Mail、memo

应用程序希望在12AM到达时发送一条消息。

书中推荐观察者模式。指出如果增加新的类:videomsg扩展消息,会影响类时钟的实现。但我不明白为什么。类Clock将保存message对象的集合,如果我们要添加一个新的inherit类,它不会更改Clock类。

如果有人能解释上面的例子,或者给出一个更好的例子,我将不胜感激。

共有1个答案

萧波峻
2023-03-14

简单来说,让你了解观察者模式

如果1000人订阅一份日报。

出版商将发送一份副本给他的订阅者每当一个新的副本到达,即每天。

 类似资料:
  • 我发现了这个例子: 但是我不明白为什么我们需要和?和方法是用于什么?

  • 观察者模式是定义对象间的一种一对多依赖关系,使得每当一个对象状态发生改变时,其相关依赖对象皆得到通知并被自动更新。观察者模式又叫做发布-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式、源-监听器(Source/Listener)模式或从属者(Dependents)模式。

  • 我是Hadoop和编程的新手,我对Avro模式演变有点困惑。我将解释到目前为止我对Avro的理解。 Avro是一种串行化工具,它存储二进制数据,其json模式位于顶部。模式如下所示。 现在我的问题是为什么我们需要进化?我已经了解到,我们可以在新字段的模式中使用<code>default</code>选项;但是,如果我们在文件中添加一个新的模式,早期的模式将被覆盖。一个文件不能有两个架构。 另一个问

  • 问题内容: Angular应用使用属性而不是事件。 为什么是这样? 问题答案: ng-click包含一个角度表达式。Angular表达式是在Angular 范围的上下文中求值的,该范围绑定到具有ng- click属性的元素或该元素的祖先。 Angular表达式语言不包含流控制语句,也不能声明变量或定义函数。这些限制意味着模板只能访问由控制器或指令提供的变量和运行功能。

  • 以我的拙见,关于“什么是单子”这个著名问题的答案,尤其是投票最多的答案,试图解释什么是单子,而没有明确解释为什么单子是真正必要的。它们能被解释为一个问题的解决方案吗?

  • 为什么我们需要字典? 计算机最适合使用数字,而人类最适合使用姓名。我们创建了DNS以便记住主机名而不是IP地址。字典以相同的方式使用,因此我们可以记住AVP名称而不是类型编号。当FreeRADIUS解析请求或生成响应时,会查阅字典。 但是,字典与DNS不同,因为RADIUS客户端不知道FreeRADIUS使用的这些“友好”名称。永远不会在RADIUS客户端和RADIUS服务器之间交换AVP名称。