“每一个模式都描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复劳动。”
——Christopher Alexander
本书是面向对象大师Martin Fowler继 AnalysisPatterns 、 UMLDistilled 、 PlanningExtremeProgramming 、 Refactoring 之后的又一力作。
“温故而知新”。Fowler在本书中再次向我们证明了《礼记》中这句古训的震撼力——他在回头审视自己及同人多年来从事企业应用开发的经验和教训后,归纳总结了51种企业应用架构的设计模式。这些模式从不同层次、不同侧面向我们展示了什么是好的企业应用架构,以及如何设计好的企业应用。
正如作者自己所言,企业应用在某些方面比其他软件(如电信通信软件)复杂得多:纷繁复杂的企业数据,“不合逻辑”的业务规则,变幻莫测的用户需求,等等。环顾四周——CORBA、J2EE、.NET——企业应用开发技术可谓“前仆后继,层出不穷”,开发平台的种类之多就更不必说。
招式套路可以千变万化,扎实深厚的“内功”却是始终如一!虽然企业应用涉及的软件技术不断翻新,但是基本的架构及设计思想却没有太多变化。将以前行之有效的设计思路和方法加以适当调整,并应用到当前的问题上,是最高效的做法。在一些专家级合作者的帮助下,Fowler将51种经常出现的解决方案转化成模式,最终融会成这本“内功心法”。建议读者仔细研读、用心揣摩本书,希望它能够帮助你应对任何一种企业应用平台,驾驭任何一种企业应用技术——无论是现在的技术还是未来的技术。
熟悉Fowler的读者都知道,这位大师的写作风格可谓是“深入浅出,娓娓道来”。本书也是一样。前8章是关于企业应用的背景知识,如分层架构、Web表现、业务逻辑、数据库映射、并发、会话、分布策略等。在此基础上,随后的各章分别对与这些背景知识相关的设计模式进行了详细的介绍。与其他设计模式的书一样,本书从模式的使用场景、解决方案、UML表示等方面予以介绍,详略得当,就连示例的编程语言的选取——Java和C#——也是与他的写作风格一脉相承的。
夜已深,窗外依旧是绵绵不断的早春小雨。让我们酌一杯清茶,一起来品味大师的话,一起来品味“源于实践、指导实践”的苦涩与甘甜——
“模式的关键点是它们源于实践。必须观察人们的工作过程,发现其中好的设计,并找出‘这些解决方案的核心’。这不是一个简单的过程,但是一旦发现了某个模式,它将是非常有价值的。对于我来说,价值之一是能够撰写这样一本参考书。你不必通读本书的全部内容,也不必通读任何一本有关模式的书。只需要了解这些模式都是干什么的、它们解决什么问题、它们是如何解决问题的,就足够了。这样,一旦你碰到类似问题,就可以从书中找出相应的模式。那时,你再深入了解相应的模式也为时不晚。”
本书翻译过程中得到了丁博、王树凤、朱锐、林繁、托明福的大力帮助。王怀民、周斌分别统审了全书。非常感谢UMLChina潘加宇、蒋芳在校对过程中的宝贵意见和建议。
译者
2004年3月27日于长沙