具体描述
本书在GoF的《设计模式》一书的基础上进行了拓展,运用其中的概念,介绍了一些技巧,帮助读者决定在不同的情况下应该使用哪些模式,以及不应该使用哪些模式。本书不仅对已有的一些模式提出新的见解,还让读者见证开发新模式的整个过程。
本书适合使用设计模式的软件开发人员阅读。
作者简介
作者介绍
John Vlissides(1961—2005) GoF成员,《设计模式》一书作者之一。曾在斯坦福大学工作,自1991年起任IBM T. J. Watson研究中心的研究员。他还曾是《程序设计的模式语言》的编辑,Addison-Wesley“软件模式”丛书的顾问。因患脑瘤于2005年感恩节病故。为纪念他的贡献,ACM SIGPLAN特设立了John Vlissides奖。
译者介绍
葛子昂,时任微软中国研发集团服务器及开发工具事业部的软件开发主管,从事WF的相关开发,致力于为WF开发人员提供方便高效的开发工具。之前曾长期从事WCF产品的相关研发,具有丰富的开发经验。出版译作有《.NET设计规范(第2版)》、《Windows核心编程(第5版)》。
目录信息
11 对模式的十大误解 2
12 观察 9
第2章 运用模式进行设计 11
21 基础 12
22 孤儿、孤儿的收养以及代用品 16
23 “但是应该如何引入代用品呢?” 22
24 访问权限 27
25 关于Visitor的一些警告 35
26 单用户文件系统的保护 37
27 多用户文件系统的保护 44
28 小结 56
第3章 主体和变体 59
31 终止Singleton 59
32 Observer的烦恼 70
33 重温Visitor 77
34 GENERATION GAP 82
35 Type Laundering 98
36 感谢内存泄漏 106
37 推拉模型 111
第4章 爱的奉献 119
第5章 高效模式编写者的7个习惯 143
51 习惯1:经常反思 143
52 习惯2:坚持使用同一套结构 145
53 习惯3:尽早且频繁地涉及具体问题 146
54 习惯4:保持模式间的区别和互补性 146
55 习惯5:有效地呈现 147
56 习惯6:不懈地重复 148
57 习惯7:收集并吸取反馈 149
58 没有银弹 149
参考文献 151
索 引 155
· · · · · · (收起)
读后感
用户评价
如果说市面上大多数关于架构的书籍侧重于“广度”——介绍尽可能多的模式和技术栈,那么这本书则选择了“深度”——对少数几个核心理念进行近乎钻研的探讨。我最欣赏的是作者处理案例时的那种“克制”。他没有堆砌那些宏大、不切实际的“史诗级”项目背景,反而专注于那些在日常开发中反复出现、却又常常被忽视的微观难题。通过对这些小问题的层层剥笋,作者展示了模式如何在最细微的层面上发挥作用,以及如果不加思考地套用模式可能带来的反噬。这种从微观入手,以小见大的叙事策略,极大地增强了理论的可操作性和说服力。我感觉自己像是在一个精密的实验室里,观察着模式的生命周期,而不是在听一场高屋建瓴的讲座。这种扎根于实践的理论阐述,是我认为这本书最宝贵的财富之一。
我对技术书籍的阅读习惯通常是带着一种“解谜”的心态,试图在最短的时间内,找到最直接、最高效的解决方案。然而,这本书的阅读体验,却更像是一场缓慢而深入的“对话”。作者的行文风格极其细腻,他似乎并不急于告诉你“应该怎么做”,而是花了大篇幅去探讨“为什么会是这样”。这种叙事方式,要求读者必须投入相当的精力去跟上作者的节奏,去品味那些看似漫不经心却掷地有声的论断。我发现,很多我过去囫囵吞枣、只是机械套用的设计原则,在作者的笔下被重新剖析,露出了其内在的逻辑肌理和历史渊源。这种深挖根源的做法,极大地丰富了我对软件架构的理解,不再满足于表面的模式名称,而是开始思考模式背后的“世界观”。对于那些渴望从“码农”蜕变为“架构师”的读者来说,这种对底层思维的培养,其价值远超任何即插即用的代码示例。它训练的不是你的手,而是你的眼光。
这本书的语言处理,实在是一门艺术。我读过很多用中文翻译或撰写的技术书籍,常常会遇到那种生硬的、拗口的术语堆砌,读起来像是机器翻译的产物,缺乏人情味。而这本书,则完全摆脱了这种窠臼。作者的遣词造句,时而严谨缜密如教科书,逻辑链条密不透风;时而又变得哲思飘渺,仿佛在与一位经验老到的前辈促膝长谈。尤其是在描述那些抽象概念时,作者似乎总能找到一个绝妙的比喻或者一个恰到好处的类比,瞬间打通了读者思维的阻塞点。我常常因为某个绝妙的句子而停下笔来,反复默读几遍,感叹于其精准度和美感。这种文字的力量,使得原本枯燥的技术概念变得生动起来,降低了阅读的心理门槛,却又不牺牲内容的深度。它证明了技术写作也可以是优雅的,而不是仅仅是功能性的。
这本书的排版和字体选择,透露出一种对阅读体验近乎偏执的关注。在如今这个充斥着大量快速消费内容的时代,能够看到一本如此注重细节的书籍,实属难得。行距的设置恰到好处,既保证了信息的密度,又避免了文字的拥挤感,使得长时间阅读也不会产生强烈的视觉疲劳。特别是那些代码块和结构图的绘制,它们不仅仅是信息的载体,本身就是设计的一部分。线条的粗细、颜色的运用都经过了深思熟虑,清晰地划分了不同层次的逻辑关系,使得复杂的结构一目了然。在我翻阅过程中,我发现自己几乎不需要费力去“解码”图表,信息直接、高效地传递到了我的脑海中。这种对视觉层面的极致打磨,极大地提升了阅读的流畅性和愉悦感,充分体现了作者对于“好设计”的理解,是全面且深入的。
这本书的封面设计,坦率地说,有些出乎我的意料。它并没有采用那种充斥着代码片段或者晦涩图形的“技术范儿”,反而呈现出一种近乎古典主义的沉静感。装帧的质地非常考究,拿在手里有一种恰到好处的重量感,让人油然而生一种庄重感,仿佛捧着的不是一本讲解软件构建技巧的指南,而是一本关于哲学思辨的文集。我尤其欣赏封面上那种留白的处理,那种克制的设计语言,暗示着作者对内容本身的自信,不需用花哨的视觉元素来哗众取宠。这种视觉上的低调,反而让人在第一时间就对这本书的深度产生了好奇——它显然不是那种走马观花的“快速入门”手册。拿到书的那一刻,我立刻翻阅了目录,那种布局的逻辑性,如同精心规划的园林小径,引导着读者逐步深入。初读下来,那些章节标题之间,仿佛有一条无形的线索在串联,没有生硬的跳转,更像是思想的自然流动。这让我对接下来的阅读充满了期待,深信作者在内容组织上必然也秉持了这份匠心。
功力不够,前半部分还能看懂,后边直接呵呵了
感觉只是对于模式细节的一些讲解和讨论,感觉对于模式看的太重了,一般的开发不应该太拘泥于这个。
感觉只是对于模式细节的一些讲解和讨论,感觉对于模式看的太重了,一般的开发不应该太拘泥于这个。
感觉只是对于模式细节的一些讲解和讨论,感觉对于模式看的太重了,一般的开发不应该太拘泥于这个。
感觉只是对于模式细节的一些讲解和讨论,感觉对于模式看的太重了,一般的开发不应该太拘泥于这个。