模式——工程化实现及扩展(设计模式Java 版)

王翔,孙逊著

ISBN 978-7-121-15638-0

20124月出版

定价:59.00

16

416

设计模式不是一门适合空谈的技术,它来自于开发人员的工程实践又服务于工程实践。

本书并不是一本面向入门者的读物,因为它需要结合工程实践介绍如何发现模式灵感、如何应用模式技术。不过作为一本介绍设计模式的书,它并不需要读者对于庞大的JDK有深入了解,因为扩展主要是结合Java语法完成的,配合书中的实例,相信读者不仅能够熟练应用设计模式技术,也能令自己的Java语言上一个台阶。

为了降低学习门槛,本书第一部分除了介绍面向对象设计原则外,还充实了一些Java语言的介绍,但这些内容并不是枯燥的讲解,读者可以在阅读中通过一系列动手练习尽快吸收这些理论并将它们转化为自己的技能。本书最后一部分的“GOF综合练习把各种设计模式做了一次集中展示,目的是让读者把分散的模式知识融合在一起,能够将书本知识真正用于改善一个生产型模块的实现。

本书内容生动,示例贴近中型、大型项目实践,通过一个个四两拨千斤的示例练习可以让读者有一气读完的兴趣。

 

如同每个人都有其个性一样,每种开发语言也有自己的特点。

项目中,我们固然可以机械地将一种语言的开发经验套用到另一种语言中,但效果不一定好,因为:

    语言有自己的短处:用短处去实现需求不仅费时费力,结果也不理想。

    语言有自己的长处:为了沿用以前的经验而削足适履,没有用到语言的精要,结果暴殄天物。

相信读者也发现了,用一种语言写一个应用是一回事,写好一个应用则完全是另一回事,这就是工程化代码和玩具代码的区别。教科书上的知识落实到工程上时不能按图索骥,需要考虑开发语言和目标环境,设计模式也不例外。

也许读者会觉得本书中很多实现方式与《设计模式》介绍的内容不一致,这是因为《设计模式》一书出版至今已近20年,其间无论是开发语言还是技术平台均已经换了人间GOF 23个模式的思想不仅影响着我们,更影响着走在技术前沿的语言设计者、平台设计者,他们也在工作中潜移默化地把模式思想融入自己的工作成果,作为用户,我们推却别人的盛情,所有事情都从车轮做起,多少有点不经济。

作为本系列的Java设计模式分册,我试图用最Java的方式将自己对于设计模式的理解呈献给读者,而且实现上务求简洁、直接。结构上,本书分为5个部分:

1)第一部分:预备知识

包括面向对象设计原则中面向类的部分、Java语言面向对象扩展特性,以及JavaC#语法特性的简单对比。

2)第二部分:创建型模式

主要介绍如何创建对象,如何将客户程序与创建过程的变化有效隔离。

3)第三部分:结构型模式

从静态结构出发,分析导致类型结构相互依赖的原因,通过将静态变化因素抽象、封装为独立对象的办法,梳理对象结构关系。

4)第四部分:行为型模式

从动态机制出发,分析导致类型调用过程的依赖因素,通过将调用关系、调用过程抽象、封装为独立对象的方法,削弱调用过程中的耦合关系。

5)第五部分:GOF综合练习

为了便于读者从整体上体会模式化设计思路和实现技巧,这部分通过一个综合性的示例向读者展示如何发现变化、抽象变化、应用模式并最终结合Java SE平台特性落地实现的过程。

不管之前对于模式是否有所尝试,我希望读者不妨浏览一下这些内容,毕竟模式思想转化为模式设计思路,再转化为模式应用技巧是一个渐进的过程,必须实际动手才会加深印象,然后才可能进一步开阔思路。本章示例设计上变化因素较多,需要三类模式的综合运用,务求能起到抛砖引玉的效果。

感谢多年培养、帮助我的领导和同事们,多年富有挑战、共同拼搏的项目经历使我能够完成这本书。

感谢我和我妻子共同的父母,他们一直给予我无私的关心和照顾,还教会我学会从生活中发掘无穷的技术灵感。

最后,感谢我挚爱的妻子,是她给予我直面挑战、战胜挑战的信心和力量。

受到自己开发年限和项目经验的限制,本书难免有疏漏和不足之处,希望能够听到您的批评和建议。

 

王翔