我经常遇到在多对多关系中选择交互模式的问题。以下示例演示了实现相同目标的四种不同方式。四种类型的介体
的目标是从一个组实体(DeliveryCompany
,College
,Supermarket
)传递消息(广告)到另一个(LazyBob
,CleverAnn
,FastJon
)。很明显,我们需要一个调解员(AdBoard
),这将有助于发布商将他们的广告发送给适当的人员和订阅者,并通知他们有关提议。
对广告的回应目前没有顾虑,但如果它很重要,我们可以认为它将来有必要。无论如何,这响应必须有一个不同的路径(我们不回应广告与其他广告吧?)
第一:
所有的用户都必须实现描述他们之间的分歧的接口。调解员与他们一起注入并为发布者的目的实现一个接口。
二:
第一的反向版本。现在发布商实现了一个描述他们的偏好的界面它由调解器使用,为用户的目的实现一个接口。
三:
中保实现两个接口:用于发送有针对性的广告(后端)和上有趣的话题(前端)接收广告。后端注入所有发布者,前端注入所有订阅者。
四:
的第三反向版本。现在中介注入了许多实现其接口的发布者和订阅者。
问题:
难道这些变种达成同样的成功目标是什么?
在发展的早期阶段,每一个都可以毫无疑问地选择,对不对?如果不是,选择的算法是什么?
你能解释它们的区别吗?你不确定的是什么决定? – Meier
差异应该从图表中清楚,但我会在一分钟内添加一些解释。我不确定选择哪一个。我应该两次掷硬币吗?你会怎么做? – astef