我在网上浏览了许多文章,试图探究发布者-订阅者模式的本质,但它们经常:
- A)包含不必要/额外的域特定组件或信息
- B)不可靠或不符合严重的OOP标准
我在寻找这个模式的 * 最基本的 , 抽象的 * 解释,***而不是***行业故事问题或真实的世界的类比。我只是想知道,抽象的:
为了在OOP中体现发布者-订阅者设计模式,必须存在的最小类是什么?它们的接口必须包括什么?
以清晰、最小的降价代码演示呈现。(最好使用TypeScript或严格注解的Python)
据我所知,似乎有三个主要类别
class Publisher {}
class Subscriber {}
class Broker {}
可能还有其他OOP结构,如Topic
或Event
等,但我不确定每个结构应该有什么方法/属性。
1条答案
按热度按时间gxwragnw1#
发布者-订阅者是一种面向网络的体系结构模式,而观察者是一种面向对象-事件的模式。它们都用于不同的软件级别。
换句话说,observer is implemented within the boundaries of an application or within a single process. Publish-Subscribe是一种跨应用程序的通信模式,消息在不同的进程之间交换。
一般来说,如果我们谈论观察者模式,我们只需要两个类:
让我举一个例子,这是Observer和Publisher(Subject)的抽象
这是
IMyObserver
的一个具体实现:这是
IMySubject
的一个具体实现:然后你可以像这样运行上面的代码: