图解设计模式[试读]
译者序
提起设计模式,GoF 的《设计模式:可复用面向对象软件的基础》一书可谓是设计模式世界的的“圣经”,几乎无人不知,无人不晓。不过,一来该书实际上源自4 位作者的博士论文,学术性较强,初学者很难透彻理解书中内容。二来,虽说设计模式只是设计思想,不依赖于任何编程语言,但是各种编程语言的特性终究是不同的,而该书中的示例代码又是基于C++ 和Smalltalk 的。因此,对于使用Java 语言编程的开发者来说,当然还是最希望能够阅读通过Java 语言的示例代码来讲解设计模式的图书。 本书是结城浩先生除《程序员的数学》《图解密码技术(第3 版)》《数学女孩》系列之外的又一力作,初版于2001 年6 ... 查看全部[ 译者序 ]
引言
大家好,我是结城浩。欢迎阅读《图解设计模式》。 想必大家在编写程序的时候,也曾遇到“咦,好像之前编写过类似的代码”这样的情况。随着开发经验的增加,大家都会在自己的脑海中积累起越来越多的“模式”,然后会将这些“模式”运用于下次开发中。 Eric Gamma、Richard Helm、Ralph Johnson、John Vlissides 等4 人将开发人员的上述“体会”和“内在积累”整理成了“设计模式”。这4 人被称为the Gang of Four,简称GoF。 GoF 为常用的23 种模式赋予了“名字”,并按照类型对它们进行了整理,编写成了一本书,这本书就是《设计模式:可... 查看全部[ 引言 ]
第1 章 Iterator 模式
1.1 Iterator 模式 使用Java 语言显示数组arr 中的元素时,我们可以使用下面这样的for 循环语句遍历数组。 for (int i = 0; i < arr.length; i++) { System.out.println(arr[i]); } 请注意这段代码中的循环变量i。该变量的初始值是0,然后会递增为1,2,3,...,程序则在每次i 递增后都输出arr[i]。我们在程序中经常会看到这样的for 循环语句。 数组中保存了很多元素,通过指定数组下标,我们可以从中选择任意一个元素。 arr[0] 最开始的元素(第0 个元素) arr[1] 下一个元素... 查看全部[ 第1 章 Iterator 模式 ]
第2 章 Adapter 模式
2.1 Adapter 模式 如果想让额定工作电压是直流12 伏特的笔记本电脑在交流100 伏特A 的AC 电源下工作,应该怎么做呢?通常,我们会使用AC 适配器,将家庭用的交流100 伏特电压转换成我们所需要的直流12 伏特电压。这就是适配器的工作,它位于实际情况与需求之间,填补两者之间的差异。适配器的英文是Adapter,意思是“使……相互适合的东西”。前面说的AC 适配器的作用就是让工作于直流12 伏特环境的笔记本电脑适合于交流100 伏特的环境(图2-1)。 图2-1 适配器的角色 在程序世界中,经常会存在现有的程序无法直接使用,需要做适当的变换之后才能使用的情况。这种用于填补... 查看全部[ 第2 章 Adapter 模式 ]