设计模式至少有如下几个用途:
1 设计模式来源于众多专家的经验和智慧,它们是从许多优秀的软件系统中总结出的成功的、能够实现可维护性复用的设计方案,
使用这些方案可以避免做一些重复性的工作,有助于提高设计和开发效率;
2 方便开发人员之间进行沟通和交流。无论使用哪种编程语言,做什么类型的项目,甚至对于一个国际化的开发团队,
当面对同一个设计模式时,大家的理解并无歧义;
3 大部分设计模式都兼顾了系统的可重用性和可扩展性,这使得开发人员可以更好地重用一些已有的设计方案、功能模块甚至一个完整的软件系统,
避免经常做一些重复的设计、编写一些重复的代码,
此外,随着软件规模的日益增大,软件寿命的日益变长,系统的可维护性和可扩展性也越来越重要,许多设计模式将有助于提高系统的灵活性和可扩展性,
在不修改或少修改现有系统的基础上增加、删除或者替换功能模块,如果一点设计模式都不懂,要做到这一点还是很困难的;
4 合理使用设计模式并对设计模式的使用情况进行文档化,将有助于别人更快地理解系统;
5 最后一点对初学者很重要,学习设计模式将有助于初学者更加深入地理解面向对象思想。
例如如何将代码分散在几个不同的类中?
为什么要有“接口”?何谓针对抽象编程?
何时不应该使用继承?
如何不修改源代码增加新功能?
同时还能够更好地阅读和理解现有类库(如JDK)与其他系统中的源代码,早点脱离面向对象编程的“菜鸟期”
设计模式并不仅仅只有这23种,随着软件开发技术的发展,越来越多的新模式不断诞生并得以应用。