有了Pharo Smalltalk 中的Announcements 框架,还有理由使用经典的Smalltalk-80 依赖/更改/更新机制吗?

最佳答案

虽然基本原理相同,但公告框架更灵活,恕我直言更优雅。例如,您可以定义公告的层次结构,并像处理异常一样处理它们。假设 Ann2Ann1 的子类,您可以:

anObject when: Ann1 do: [...]

该块将捕获两类公告。另一个很酷的事情是您可以为一组公告而不是单个公告定义处理程序。假设 Ann3Ann4 是公告,你可以:
anObject when: Ann3, Ann4 do: [...]

当这些公告中的任何一个被触发时,块将被评估。最后,由于您的事件现在是对象,您可以将行为委托(delegate)给它们,这真的很好。您可能会发现有关该主题的 set of posts by Vassili Bykov

回到最初的问题:我能想到的唯一“缺点”是您必须定义一个类,而不仅仅是使用符号。但老实说,与您通过公告获得的 yield 相比,这种努力是如此之低,这对我来说是轻而易举的。我真的想不出有什么理由不去使用公告。

HTH

关于observer-pattern - 公告如何与经典的 Smalltalk-80 依赖/更改/更新机制相关?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15666290/

10-12 18:49