有人能指出两者之间的主要区别吗?
看起来,至少在概念上,这两者是非常密切相关的。如果我要大胆猜测,我会说发布/订阅方法是中介模式的子集(因为中介不一定需要以发布/订阅的方式使用,但后者似乎需要一种中介对象)。离它很近吗?
发布于 2010-07-02 07:07:17
我将如何描述不同之处在于,在mediator中,您可能会关心最终应用程序是否收到消息。因此,您可以使用它来保证谁在接收消息。而使用pub/sub,您只需发布您的消息。如果有任何订阅者,他们会得到它,但你不关心。
发布于 2010-07-02 07:06:13
根据this page的说法,发布-订阅模型是中介模式的一种实现。
编辑
我要指出的是,设计模式之所以被称为“模式”,正是因为每个实现之间都会有差异。与其说它们是一组规定的、规范的形式,不如说它们是关于人们如何编写软件的观察的集合。因此,对于一个设计来说,没有任何方法可以“严格”遵守设计模式。
发布于 2013-11-12 20:39:24
实现可能是相同的,但在逻辑上它们是不同的(区别很简单,但很难看出)。我将在下面以一种简单的方式解释它。
实际上,在发布/订阅模式的实现中,您至少会有一个具有"publish“和"subscribe”方法的对象。但是您也可以拥有更多的组件,因此组件之间的通信不是按定义集中的。
在Mediator模式的实现中,您将只有一个带有"publish“和"subscribe”方法的对象。因此,根据定义,通信是“集中的”。
https://stackoverflow.com/questions/3162291
复制相似问题