虽然研究Observer pattern
我注意到,该之间的连接Subject
和Observer
通常是一对多的.为什么这样?为什么多对多关系可能导致任何问题?
使用Observer设计模式设计的系统用于为受试者提供具有多个观察者的设施,并在受试者的状态改变时通知他们.这是教科书的定义.
让我们看一个真实世界的用例 - 报纸和订阅者.报纸公司向订阅它的人发送报纸.它出版报纸,人们订阅报纸.
根据您的查询,这些订阅者可以订阅许多报纸.所以,它应该是多对多的.如果您认为系统的设计和开发适合所有订阅者和所有报纸,那么看起来就是如此.然后这个订阅者报纸的世界是多对多的.而你是对的.正如上面的评论中所讨论的 - Twitter处理程序有多个订阅者订阅了多个Twitter句柄.它是多对多的.
但后来有一个问题.
实际上要回答你的问题 - 我们需要将发布者 - 订阅者之间的这种多对多关系分解为两部分 - 1.从发布者到订阅者的一对多关系2.从订阅者到发布者的一对多关系
从出版商到订阅者的一对多被一直使用 - 报纸出版商向其订阅者发布报纸,推文出现在粉丝中.
但是,你真的对订阅者与发行者之间的一对多关系有任何用处.我的意思是以他们订阅的多个人和Twitter句柄为例.假设有一个订阅者发推文.这些信息是否与他/她关注的推文句柄相反?没有.Twitter句柄是否知道他们的粉丝发了推文?信息并没有在相反方向上从订户流向出版商,或者,观察者向受试者.然后,如果没有信息从观察者流向主题 - 为什么要为它设计!这是你的答案.