6

我试图了解什么是 Poltergeist 反模式,以及它与命令或委托模式有何不同。我读了:

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

但是没看懂区别。。。

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

有人有吗?

4

2 回答 2

3

维基百科用以下方式描述了命令模式:

命令模式是一种行为设计模式,其中对象用于表示和封装稍后调用方法所需的所有信息。一个组件可以向另一个特定组件发送命令,假设满足某些条件时,该命令将被触发。

这个概念很像函数式编程中的函子(函子基本上是一个黑匣子中的函数,参数和所有)

恶作剧鬼被描述为:

poltergeist 是一个短暂的、典型的无状态对象,用于执行初始化或调用另一个类中的方法。

命令是通用的,必须能够包含足够的状态才能重用。捣蛋鬼通常是有特殊目的的,它们的存在只是为了让一些椅子嘎嘎作响,在地下室发出很大的噪音,然后消失。Poltergeists 通常用作帮助构造或初始化对象的拐杖,并且很少用于在构造后共享状态更改。

换句话说,是的,它们有点相似,但是 poltergeists 是不灵活的并且代表一个静态动作,而命令是通用的,可以重用,并且代表一个可配置的动作。

于 2012-10-09T14:36:17.247 回答
0

值对象,顾名思义,往往属于这一类。

http://en.wikipedia.org/wiki/Value_object

它们的存在是为了推动价值观,但不做任何事情。

于 2012-12-11T17:47:44.490 回答