【发布时间】:2016-02-20 03:59:05
【问题描述】:
假设您创建了两个对象:objectA 和 objecB。如果 objectA 需要向 objectB 发送消息,应该是这样的:
objectA.theMessage(objectB)
或者像这样:
objectB.theMessage(objectA)
一个更具体的例子:
Publisher p;
Subscriber s;
// way 1
p.addSubscriber(s);
// way 2
s.subscribeTo(p);
正如你所看到的,两个消息(函数)的语义是相同的,只是函数应该放在哪里的问题。
是否有硬性规定规定应该做什么?或者是否有一个通用指南可以帮助您确定哪个是更好的设计?或者这是逐案处理并且不存在一般准则?如果是这样,你能解释一下我什么时候会使用它们。您能想到每种方法的潜在优势/劣势吗?
非常感谢您的时间和知识!
【问题讨论】:
-
如果你添加了一个特定于语言的标签,你会在这个问题上得到更多的关注,但是你正在寻找的是所谓的观察者模式
-
感谢您关于添加语言标签的建议! :) 我知道观察者模式,这就是我使用发布者/订阅者示例的原因:) 哈哈。我要问的是:关于消息应该放在哪里,是否有一般规则(不限于观察者模式)?他们应该住在哪个对象中? :)
标签: java c++ extensibility maintainability