设计模式的艺术
刘伟
前言
在过去多年的软件开发和教学推广工作中,我时常能够听到这样的声音:
抽象类和接口到底有什么用?
继承不好吗?为什么有时候不用它来实现功能复用?
能不能在下次增加功能时不要修改源代码?每次都改,太麻烦了。
有没有一种方法能够减少类的个数?这么多类,太复杂了。
面向对象软件的可重用性不是很好吗?为什么我还是在不断编写相同的代码?
我学过设计模式,也看了好几本书,但实际开发时我还是不知道怎么运用这些模式?
……
你是否也曾有过上述疑问或者发出过类似的感慨?如果有,那么本书将是你明智的选择。本书将结合大量项目实例来逐个讲解设计模式,讲述如何通过设计模式来解决上述问题,让读者能够快速提升自己的开发功力,真正理解和掌握每个设计模式,在软件开发的内功修炼之道上迈出坚实的一步。
写作目的
设计面向对象软件比较困难,而设计可复用的面向对象软件就更加困难。
——GoF(1995)
软件开发是一门技术,更是一门艺术!
随着面向对象技术的发展和广泛应用,设计模式在软件开发和设计中的重要性不言而喻。作为软件开发人员,尤其是面向对象软件开发人员,设计模式已成为其内功修炼的重要组成部分之一。无论是面向对象的初学者还是具有一定经验的开发人员,都可以通过对设计模式的学习和使用来加深对面向对象思想的理解,开发出具有更好的可扩展性和复用性的软件。设计模式是前人经验的积累,它将让软件变得更像一个艺术品,而不是一堆难以维护和重用的代码。
作为一名从事模式使用和推广工作多年的教师兼开发人员,如何更好地将设计模式的思想和实践经验传递给他人一直是我在思考的一个问题,于是多年前我开始着手收集和整理所积累的一些与设计模式相关的项目实例和资源,经过无数个夜晚的“挑灯夜战”,终于完成了《设计模式的艺术:软件开发人员内功修炼之道》(2013年,清华大学出版社出版)一书的编写工作。本书对《设计模式的艺术:软件开发人员内功修炼之…