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

时间:2017-08-22 03:02:53

标签: design-patterns anti-patterns

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

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

1 个答案:

答案 0 :(得分:6)

简单差异将是:

设计模式:

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

反模式:

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

来自维基百科:

  

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

     

三年后,AntiPatterns一书推广这个词,   它将其使用范围扩展到软件设计领域之外   非正式地解决问题的任何通常彻底改造但不好的解决方案。   例子包括分析瘫痪,货物崇拜编程,死亡   march,groupthink和vendor lock-in。

一些反模式的例子:

  1. https://javaantipatterns.wordpress.com/
  2. https://sourcemaking.com/antipatterns
  3. 希望这是有道理的。