andrew koenig 在 joop [1] 的一篇文章中首先创造了术语“反模式”,遗憾的是在 Internet 上没有。基本思想(我记得 [2] )是反模式在您开始时似乎是个好主意,但会给您带来麻烦。从那以后,这个词经常被用来表示任何坏主意,但我认为最初的焦点更有用。
在论文中 koenig 说:
反模式就像模式一样,只是它提供的不是解决方案,而是表面上看起来像解决方案但实际上不是解决方案的东西。
——安德鲁·科尼格
这就是使一个好的反模式与一件坏事分开来指出和嘲笑的原因。它看起来像是一个好的解决方案这一事实是它的根本危险。因为看起来不错,所以理智的人会走这条路——只有你付出了很多努力,你才会知道这是不好的结果。
在编写反模式的描述时,如果您选择了错误的路径,描述如何摆脱麻烦是很有价值的。我认为这很有用但不是必需的。如果没有摆脱它的好方法,那不会降低警告的价值。
记住相同的解决方案在某些情况下可能是好的模式而在其他情况下可能是反模式是很有用的。解决方案的价值取决于您使用它的环境。
笔记
1:面向对象程序设计杂志,第 8 卷,第 1 期。 1. 1995 年 3 月/4 月,随后在 linda rising 编辑的"the patterns handbook" 中重印(剑桥大学出版社)
2:我没有论文的副本,所以我主要靠记忆和一些旧笔记。