设计模式 – 恶作剧反模式的例子

我试图理解什么是Poltergeist反模式,它与Command或Delegate模式有什么不同.

我读了:

http://en.wikipedia.org/wiki/Poltergeist_(computer_science)
http://sourcemaking.com/antipatterns/poltergeists

但是不明白这个区别……

所以为了说清楚,我想看看它的代码示例(我更喜欢C#或Java语言).

有人有吗?

最佳答案 维基百科描述了命令模式:

The command pattern is a behavioural design pattern in which an object is used to represent and encapsulate all the information needed to call a method at a later time. One component can send a command to another specific component, with the assumption that when some condition is met, the command will be fired.

这个概念非常类似于函数式编程中的仿函数(仿函数基本上是黑盒子中的函数,参数和所有)

恶作剧的描述如下:

The poltergeist is a short-lived, typically stateless object used to perform initialization or to invoke methods in another class.

命令是通用的,必须能够包含足够的状态才能重用.恶作剧者通常是特殊目的,只是为了敲打一些椅子并在地下室发出响亮的声音,然后消失.恶作剧者通常被用作拐杖来帮助构建或初始化一个物体,很少用于分享施工后的状态变化.

换句话说,是的,它们模糊地相似,但是poltergeists不灵活并且代表静态动作,并且命令是通用的,可以是可重用的,并且代表可配置的动作.

点赞