设计模式

为什么要设计模式

在问为什么要设计模式就跟问你为什么需要专有名词一样。

故事

一个普通人跟一个java程序员聊天,问到什么是java时,往往程序员会这么回答:

Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。

正常人没有人会认真听完你的解释,如果有原因听下去的,你可能还得顺便解释下什么是面向对象,什么又是C++,什么是继承什么是指针等等。

两个程序员聊天,问到你用的是什么语言,java程序员只需要这样回答: 我用的是java。然后另一个程序员就自己会脑补:

哦,原来你用的是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。

有共同语言,聊起天来省时省力,很轻松。

在软件编程中也是这样。前人通过大量的经验,在各种场景下已经总结出了一套相较来说最合适的编程方法。

自己在一个需求前揪光头发写的代码可能就是代码耦合度太强,或者复用性不高,或者可读性太差,又或者根本就到处都是隐藏着的bug。

而精通设计模式的人,可能只需要泡上一杯枸杞,整理完整个需求,挑出适合的设计模式进行组合,敲就完事了。敲完的代码又实用又美观,看着好像就是spring源码一样,看起来很有逼格。

结论

  • 当你跟专业又资深的设计人员聊天时,你需要知道什么是设计模式,不然你听不懂他们在聊什么天。
  • 在设计模式指导下的开发,实用又高效。
  • 前人的设计经验,不需要重复造轮子。
  • 个人技术能力提高,让你区别于码农,你怎么着也能算个工程师了。

怎么学设计模式