反模式
2015年8月25日
安德鲁·科尼格 首次在 JOOP[1] 中的一篇文章中创造了“反模式”一词,这篇文章不幸的是在互联网上无法获得。基本思想(据我所记得的[2])是,反模式在你开始时看起来像个好主意,但最终会让你陷入困境。从那时起,这个词经常被用来表示任何不好的想法,但我认为最初的重点更有用。
科尼格在论文中说
反模式就像模式一样,只是它不是一个解决方案,而是看起来像一个解决方案但实际上不是。
-- 安德鲁·科尼格
这就是为什么一个好的反模式与仅仅是用来嘲笑的东西不同。它看起来像一个好的解决方案,这就是它的本质危险。因为它看起来很好,明智的人会走这条路——只有当你投入了大量努力后,你才会知道它会带来不好的结果。
在编写反模式的描述时,描述如何从错误的道路上走出来非常有价值。我认为这是有用的,但不是必需的。如果没有好的方法可以摆脱困境,这并不会降低警告的价值。
值得记住的是,同一个解决方案在某些情况下可能是好的模式,而在另一些情况下则是反模式。解决方案的价值取决于你使用它的环境。
注释
1: 面向对象编程杂志,第 8 卷,第 1 期。1995 年 3 月/4 月。它后来被转载在由琳达·赖辛(剑桥大学出版社)编辑的“模式手册”中
2: 我没有这篇论文的副本,所以我主要依靠记忆和一些旧笔记。