- 是很多专家学者的经验总结,是对某一类问题的解决方案。使用它我们可以少做一些重复的工作。
- 提供了一套通用的设计词汇或语言,便于不同人的沟通。不管你是处于哪个团队,使用什么编程语言,做什么项目,只要提到同一个设计模式,我们的理解应该是一致的
- 方便代码的复用,并提高代码的可扩展性。应该尽量地少改代码,已达到开闭原则
- 合理使用设计模式,并对此进行文档化总结,有助于别人更快理解和介入系统。如果xx升职或跳槽,别人也能很容易接手xx的项目,只要他懂设计模式。
- 有助于初学者更深入地理解面向对象编程。让其知道,如何以及为什么要将代码分散到多个类中;为什么要有接口,接口的意义;什么是面向抽象编程,为什么要面向抽象编程;什么时候不应该使用继承;如何在不修改或少修改代码的情况添加新功能。也有助于我们更冗余读懂JDK源码和第三方开源的优秀源代码(如Spring、Mybatis等)。
参考link: