反面模式 在软件工程中反面模式antipattern或antipattern指的是在实践中經常出现但又低效或是有待优化的设计模式是用来解决问题的带有共同性的不良方法它们已经经过研究并分类以防止日后重蹈覆辙并能在研发尚未投产的系统时辨认出来 Andrew Koenig在年造了antipattern这个词灵感来自于GoF的设计模式一书而这本书则在软件领域引入了设计模式design pattern的概念三年后antipattern因AntiPatterns这本书而获得普及而它的使用也从软件设计领域扩展到了日常的社会互动中按AntiPatterns作者的说法可以用至少两个关键因素来把反面模式和不良习惯错误的实践或糟糕的想法区分开来 行动过程和结构中的一些重复出现的乍一看是有益的但最终得不偿失的模式 在实践中证明且可重复的清晰记录的重构方案 很多反面模式只相当于是错误咆哮不可解的问题或是可能可以避免的糟糕的实践它们的名字通常都是一些用反话构成的词语有些时候陷阱pitfalls或黑色模式dark patterns这些不正式的说法会被用来指代各类反复出现的糟糕的解决方法因此一些有争议的候选的反面模式不会被正式承认 这个概念很容易推广到工程学以及工程以外需要人们付出努力去争取的领域尽管在工程学以外很少用到这个术语但其概念是通用的