我正在试图理解什么是Poltergeist反模式,它与Command或Delegate模式有何不同。 我读过:
http://en.wikipedia.org/wiki/Poltergeist_(computer_science) http://sourcemaking.com/antipatterns/poltergeists
但是不明白这个区别......
所以要说清楚我想看看它的代码示例(我更喜欢C#或Java语言)。
有人有吗?
答案 0 :(得分:2)
维基百科用以下内容描述命令模式:
命令模式是一种行为设计模式,其中一个对象用于表示和封装稍后调用方法所需的所有信息。一个组件可以向另一个特定组件发送命令,假设当满足某些条件时,该命令将被触发。
这个概念非常类似于函数编程中的仿函数(仿函数基本上是黑盒子中的函数,参数和所有函数)
吵闹鬼被描述为:
poltergeist是一个短命的,通常是无状态的对象,用于执行初始化或调用另一个类中的方法。
命令是通用的,必须能够包含足够的状态才能重用。恶作剧者通常是特殊目的,只是为了敲打一些椅子并在地下室发出响亮的声音,然后消失。恶作剧者通常被用作拐杖来帮助构建或初始化一个物体,很少用于分享施工后的状态变化。
换句话说,是的,它们模糊地相似,但是恶作剧者不灵活,代表静态行为,命令是通用的,可以重复使用,并代表可配置的动作。
答案 1 :(得分:0)