最近我一直在阅读很多有关设计模式的内容,而且我至少看过一个,理论上我可以在我的工作中使用。
我们有几个网站只是从网站网络内的其他网站解析XML Feed并将其显示给用户。在我看来,当前的实现相当沉闷,因为当一个拥有网站的虚拟机翻转时,获取这些网站的网站要么暂停,要么会慢慢爬行。
在阅读了关于观察者模式的文章后,我认为这是一个好主意,但我有一些问题:
1-我将如何跨网站实施这种“逻辑”?
2-提供供稿的每个网站是否都是观察者以及阅读供稿可观察量的网站?
3-与2相关:拥有一个“中心”观察者收集所有网站的供稿并且需要它的网站只会插入该观察者是否明智?感谢您的帮助
答案 0 :(得分:0)
1-我将如何跨网站实施这种“逻辑”?
- >是的,通常这种设计模式能够应用于任何一个对象通过观察者和观察者之间的解耦关系向许多其他对象通知状态变化的任何地方。这些通知可以通过网络传输或在一个主机内传输。
- >但是对于您的问题,在我看来,实施此模式并不实际,因为提供Feed的服务器通常扮演被动角色,通过某些网址提供Feed,而活动角色通常由想要阅读Feed的网站扮演从中。在观察者模式中,可观察者总是活跃的,观察者总是被动的。
2-提供供稿的每个网站是否都是观察者以及阅读供稿可观察量的网站?
- >根据对问题1的回答,因为在我看来这是不切实际的,所以不需要再多讨论。
3-与2相关:拥有一个“中心”观察者收集所有网站的供稿并且需要它的网站只会插入该观察者是否明智?- >不,这不是观察者模式。根据定义“定义对象之间的一对多依赖关系,以便当一个对象更改状态时,将自动通知和更新其所有依赖关系”。你的想法是关于“多对一的依赖”。