谁是观察者,谁是可观察者?

时间:2012-02-16 09:13:51

标签: php observer-pattern

在大型模块化应用程序中,您如何确定谁是观察者以及谁是可观察者?

例如,假设我们有2个模块:

  • 博客模块:创建和管理博客帖子。
  • 社交媒体模块:读取和写入社交媒体流。

假设我们想要实现一个功能,当用户在“创建博客”帖子页面时,如果他启用了社交媒体模块,我们还会包含一组处理社交流发布的字段。

在这种情况下,博客模块或社交媒体模块应该是观察者吗?谁应该为社交媒体选项提供表单字段?如果社交媒体模块提供完整小部件,或者博客模块是否应检测社交媒体模块是否可用,请呈现适当的字段,然后将提交的数据传递给社交媒体模块?

1 个答案:

答案 0 :(得分:2)

观察者是当来自其他模块的数据发生变化时想要更新的模块。在您提供的示例中,社交媒体模块是观察者,并且正在观察博客模块。每个社交媒体模块(观察者)都应该在博客上注册一个句柄或引用,只要博客更新就会被调用。