设计模式与反模式之间的差异

Ahm*_*yan 4 design-patterns anti-patterns

我正在阅读有关设计软件架构的理论,我发现在设计软件时我们应该考虑一些理论,如SOLID原理,设计模式和反模式.

我的问题:设计模式和反模式之间有什么区别?它们解决了什么问题?

Pri*_*jee 6

简单的区别是:

设计模式:

高效,高效的解决方案,由软件工程师多年的实践和解决问题开发而成.

反模式:

已知的解决方案对于某些问题实际上是坏的或有缺陷的.

来自维基百科:

反模式是对反复出现的问题的常见反应,这种反复出现的问题通常是无效的,并且可能会产生高度适得其反的效果.[1] [2] 这个术语由Andrew Koenig于1995年创建,[3]的灵感来自于一本名为"设计模式"的书,该书突出了其作者认为高度可靠和有效的软件开发中的一些设计模式.

三年后,AntiPatterns一书推广了这个术语,它将其使用范围扩展到软件设计领域之外,非正式地引用任何通常彻底改造但解决问题的不良解决方案.例子包括分析瘫痪,货物崇拜编程,死亡游行,集体思考和供应商锁定.

一些反模式的示例:

  1. https://javaantipatterns.wordpress.com/
  2. https://sourcemaking.com/antipatterns

希望这是有道理的.