我试图理解什么是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不灵活并且代表静态动作,并且命令是通用的,可以是可重用的,并且代表可配置的动作.