
致谢
本书的灵感来源于多个方面,最近几年我得到了他人极大的帮助。但是,我要特别感谢七个人。在我过去二十年的工作中、过去十年研发这些模式以及过去两年完成本书的过程中,他们的理念都给予了我指导。他们是:
Robert C.Martin(Bob大叔):Bob在面向对象设计原则方面(即SOLID原则)的工作是本书所讨论的很多技术的基石。实际上,这本书是他的这个系列的一部分,附录A提供了一些原则的整体介绍。
Clemens Szyperski:Clemens的《Component Software:Beyond Object Oriented Programming》 [5]一书作为基础定义了模块的概念,这个概念贯穿本书。
John Lakos:John的《大规模C++程序设计》是我见过的唯一一本讨论物理设计的书。在那本书中,John的理念激发了我的灵感和对物理设计的兴趣,这使得我在过去的十年中使用并提炼技术,最终形成了这些模块化模式。
Ralph Johnson、John Vlissides、Erich Gamma以及Richard Helm(即GoF):除了提供本书中所使用的模式模板外,《设计模式》一书加深了我对面向对象理念的理解。
除此之外,我还要感谢下面这些人,得益于他们的反馈,我才能极大地改进本书所传递的信息。
尤其是,OSGi联盟的技术总监Peter Kriens:Peter提供了很多的反馈,以至于我应该将其列为合著者。
我还要感谢Brad Appleton、Kevin Bodie、Alex Buckley、Robert Bogetti、Chris Chedgey、Michael Haupt、Richard Nicholson、Glyn Normington、Patrick Paulin、John Pantone以及Vineet Sinha,他们提供了深刻的评论和有价值的反馈,帮助我更清晰地确定本书的范围并在讨论中加入更多视角。当然,在这个过程之中,还有很多人对我的著作产生了影响。令人遗憾的是,我肯定落下了其中一些人的名字。你们知道我说的是谁。谢谢你们!
当然,我还要感谢Prentice Hall团队,正是他们使这一切成为可能。编辑Chris Guzikowski多年以来给我了很多的机会来完成本书,这甚至超出了我的预期。策划编辑Sheri Cain给了我格式化方面的很多建议,回答了我所提出的一些很愚蠢的问题,并且将很粗糙的手稿进行了结构化和改善。编辑助理Olivia Basegio和Raina Chrobak在整个过程中都给予了我指导。项目编辑Anna Popick掌控了整个项目的完成。文字编辑Kim Wimpsett帮助出版了最终的手稿。
最后,我要感谢我的家庭。如果没有他们的爱,几乎什么事情都做不了,什么事情都没有意义。感谢父亲和母亲,他们的温柔陪伴着我的整个生命旅程。我相信很多时候他们都不明白我要成为什么样子。我的祖母Maude,您是有史以来最伟大的老师。我的孩子,Cory、Cody、Izi以及Chloe,他们使得生活充满了乐趣。当然还有我的妻子Tammy。她是我最好的朋友,正是她的鼓励让我抹去旧书稿的灰尘并重新开始。谢谢你们。感谢所有的人!