现代科学技术迅猛发展,计算机信息技术发挥着巨大的作用,并已经渗透到各行各业,推动着这些行业的迅速发展。很多读者朋友熟练地掌握了语言,却对设计模式不够重视,导致在实际的工作中没有真正应用到起关键作用的设计模式。
而了解了设计模式,在宏观上就能把握面向对象编程的精髓。对于大多数不懂编程的朋友来说,了解了设计模式,也就是体会到了编程世界的一个大的框架。
究竟什么是设计模式呢?
设计模式就是由某些需要严密整合的具体接口开始,最后过渡到一种通用的结构。不管最后所选取的设计模式是什么,最初的目的都是相同的,就是为了解决一个设计问题。它所创造的一系列词汇可以帮助我们同其他开发者相互交流。
设计模式体现的是一种思想,思想是指导行为的一切。理解和掌握设计模式,记住23种或者更多的设计场景和解决策略是不够的,更要接受一种思想的熏陶和洗礼。用这种思想进行设计和开发,这才是重要的。
本书通过故事讲述程序如何设计。希望能给渴望了解面向对象程序设计的初学者及困惑、无法复用的代码编程体验者一些好的建议和提示。
本书主要采用J**A语言介绍设计模式中比较常见的23种设计模式,分29章具体介绍,以现实生活中常见的事情为例来具体分析讲解。在本书中,以“男人和女人通过媒人约会”为例来说明。这样比只告诉概念性的内容更加容易理解和记忆。为了让读者能够更好地理解这23种常见的设计模式,本书还举了许多的例子,如我们大学生毕业面临的问题:大学毕业了怎么办?参加招聘会或是大学生毕业后会选择什么样的路?等等。每种设计模式都以一个现实生活中的故事为例,引入该模式的概念,目的是使概念能够通俗易懂,然后是举一至两个较简单易懂的代码例子来具体体现该模式。之所以会采用Java语言是因为Java比C++计算机语言简单,没有像C++语言中有一些不容易理解或容易出错的概念和语法。Java是一种较新的计算机语言,所以它在面向对象和多线程特性上比其他现有计算机语言显得更纯粹一些,在网络平台无关性和安全性方面的优点也比大部分计算机语言更显突出。而Java语言本身是一种可以满足这种需求的计算机语言。学习Java程序设计,应用Java语言实现算法也比较容易,从而节省编程时间,编写出来的Java代码比较容易得到复用和移植。
本书是一些基础性的内容,不适合有多年面向对象开发经验和对常用的设计模式了如指掌的人。它所面向的读者是那些想提高的初中级Java程序员。
本书人物及背景
小A:原名李华,22岁,广东人,广州某大学计算机专业大学三年级学生,成绩一般,但是好学上进。
大B:原名黄大远,29岁,广东人,广州某大学毕业,是小A的师兄。 毕业后长期从事软件开发和管理工作,住在小A家附近,小A以向大B学习为由,经常找大B聊天。大B也很欣赏小A的好学上进,所以也常常鼓励小A,帮小A解决学习上遇到的困难。
本书结构
本书主要分为七个部分来讲述23种常见设计模式。
第一部分主要是第一章设计模式的概述。
第二部分是(第2章~第6章)介绍接口型模式。主要包括:适配器模式、外观模式、组合模式、桥接模式。
第三部分是(第7章~第12章)介绍责任型模式。主要包括:单体模式、观察者模式、中介者模式、代理模式、享元模式。
第四部分是(第13章~第18章)介绍构造型模式。主要包括生成器模式、工厂方法模式、抽象工厂模式、原型模式、备忘录模式。
第五部分是(第19章~第24章)介绍操作型模式。主要包括模板方法模式、状态模式、策略模式、命令模式、解释器模式。
第六部分是(第25~第29章)介绍扩展型模式。主要包括装饰器模式、迭代器模式、访问者模式和设计模式总结。
第七部分是附录。
编者