滥用观察者模式容易吗?

时间:2011-10-27 20:31:37

标签: ruby oop observer-pattern

我有一个项目,我第一次广泛使用观察者模式。我发现的一件事是,如果我检查这个项目中的一个典型对象,它对所有的观察者和观察者来说往往是惊人的大,然后是观察者有其他观察者的时候等等。

由于表现良好,这似乎与此无关。但我偶尔发现,当我在调试器中时,如果我尝试打印一个实例变量,它将锁定我的机器直到我终止该过程。这让我担心在代码生产过程中有一些机会发生这种情况。或者这只是一个警告,我正在滥用这种模式。

任何提示,建议?

2 个答案:

答案 0 :(得分:2)

TL; DR:是的,但这并不意味着它有时并不完美。

“令人惊讶的大”暗示......它非常大; 实际意味着什么?有多少观察员/观察者?他们是否深深嵌套?

IMO在调试器中执行操作与“现实生活”之间的关联并不是特别强烈; 它曾被锁定在生产或测试中?我更有可能认为它是调试过程/应用程序的工件。

“远距离的怪异行为”会创建非本地性,必须理解这些非本地性才能正确推理代码和行为。这种发展需要积极进行;而不是说“我只是创建一个新的观察者”,建立它,并尽可能保持推理的线性。

答案 1 :(得分:0)

您可以覆盖inspect方法以减少冗长。