您的浏览历史

软件设计精要与模式

促销活动
精彩评论

基本信息

内容简介回到顶部↑

本书关注的焦点是软件设计,涵盖了大部分与设计有关的基本要素,包括面向对象编程思想、设计模式、重构、测试驱动开发、极限编程以及软件体系架构设计。其中,尤以设计模式为主,深入探讨了软件设计过程中的原则与模式,并结合大量的实例与代码演示了如何合理运用设计模式,改善程序模块的可复用性、可扩展性,实现模块间的松散耦合。全书将软件设计理论与项目实践完美地结合起来,使其告别了纯理论研究的空泛,具有现实的指导意义。本书共分为5篇,包括:设计之要、.NET Framework与设计模式、媒体播放器的设计之旅、设计模式应用实践以及.NET体系架构设计。
本书力求讲解浅显明白。在技术探讨上,尽可能地深入透彻;在每一字的描述上,尽可能地简单易懂。本书适用于所有希望提高软件设计水平的程序员、软件工程师,同时,对于软件设计师与系统架构师也具有一定的参考价值。

作译者回到顶部↑

本书提供作译者介绍

张逸作为一名高级软件工程师,曾先后在中兴通讯、HP任职,参与了AAA(Authorization Authentication Accounting)、BOE-CIMS(BOE-Computer Integration Manufacture System)、NCIC-CRM(Nissan-Customer Relation Management)等项目与模块的设计与开发。作为Microsoft MVP(Most Valuable Professional),他主要从事.NET平台下架构设计与开发的工作,熟悉C#,ASP.NET,Web Service,.NET Remoting,WCF等技术。

张逸在面向对象领域具有一定的造诣,特别是设计模式、测试驱动开发、极限编程.. << 查看详细

目录回到顶部↑

第1篇 设计之要
第1章 设计之道
第2章 封装变化
第3章 体验重构
第4章 测试驱动开发实践
第5章 设计,由你掌握
第2篇 NET Framework与设计模式
第6章 Framework模式
第7章 Composite模式
第8章 Decorator模式
第9章 lterator模式
第10章 Strategy模式
第3篇 媒体播放器的设计之旅
第11章 面向对象设计与Framework模式
第12章 探讨Adapter模式
第13章 从Adapter模式到Decorator模式
第14章 Visitor模式探索
第15章 再谈Adapter模式
第4篇 设计模式应用实践
第16章 Abstract Factory模式应用实践

前言回到顶部↑

缘起.
用过去几年互联网上最酷,而在当下已经被用滥的名词来说,我在2004年成为了一名博客,用日志的方式记录自己成长的经历。坦白说,技术的成长远远比身体的发育更加地艰辛与缓慢,尤其是当今信息爆炸的年代,我们担忧的不是吃不饱,而是应该怎么吃,吃什么?营养不良固然令人堪忧,营养过剩却也不是健康之道。如果我们对软件技术做一次全方位的扫描,收获的无疑是面对岔路口的彷徨与迷茫,就像博尔赫斯笔下的曲径分岔的花园。
这是一种梦魇,就像在我的儿童时代,每次发高烧都会做的同一个恶梦一样,跑不掉,挣不脱,惊醒之后却又说不清的感觉。没人愿意走迷宫,除了那些以解谜题为乐趣的天才们。所以,我们在软件设计的迷宫门前停住了脚步;然后,四处顾盼寻找通过迷宫的地图。
不知道世界上是否真的存在穿过软件设计迷宫的地图,但至少有人曾经通过,并且留下了淡淡的足迹。这些足迹或者交互重叠,或者纷繁杂乱,分不清哪里才是走过的正确的路。于是,寻找、识别与尝试就成为我们面对技术更新的时候要经历的三部曲。
经典的技术,特别是经典的设计思想,完全可以免去这几个步骤。例如设计模式,在面向对象世界里,它已经成为了经典的存在,我们不必浪费时间去质疑它的重要性。省去了寻找、识别与尝试的过程,我们可以直接将它设定为亟待攻克的堡垒。正是基于这样的目标,我开始尝试与广大博友分享我的战斗攻略与心得。
博客的风格是“童言无忌”,所以我能够自由写意地耕耘博客园的一块田地。俗语云:种瓜得瓜,种豆得豆。我种下了技术的种子,吸收着评论的养料,最后收获的却是现在这本呈现在读者面前的《软件设计精要与模式》,连我自己也要感到莫名惊诧了。书的出版缘起偶然。在我做完了一个长达一年多的项目之后,又参加了另外一个大型项目最后阶段的开发与测试,最后拒绝了一个周期可能长达几年的项目安排,结束了在北京的漂泊回到故乡。我开始了悠闲自得的放假生涯。一次偶然与博客园站长杜勇先生的闲谈,结束了我的休假状态,开始了数月的写书生涯。对于杜勇先生,我想把感谢的话放在本文的末尾,此时只想表达我的“愤慨”,是你,谋杀了我的闲适生活。
好在我这本书成不了指引人们走出迷宫的地图,所以我可以“没有责任心”地回过头来欣赏自己在迷宫墙上的涂鸦,即使是一个人的艺术,对于自己而言,也是一种美。萨特说:“存在即合理”,我相信本书能够体现这种逻辑的合理性。
本书有些什么
既然本书的内容源自于博客的内容,就必然继承了一些散漫自由的风格。我甚至建议读者把书中各章看作是一篇篇技术随笔,因为我实在厌倦了那种捧着高文大册时的战战兢兢了。于是,我努力营造一种华丽的风格,以此来冲击那些习惯了枯燥与平实的读者口味。
散文的要旨是“形散而神不散”,本书基本符合散文的精神。虽然每一章都可以看作是一个独立的部分,然而其中蕴涵的思想却是一致的,因而又可以合为一个整体。如果观察整体的局部,我们又可以将其割裂开来,成为一个单独存在的系列。如此安排,固然与博客的风格有关,却能够兼得一个好处,就是读者可以有选择地根据自身情况进行阅读,而不必囿于整部书的约束。
全书围绕着软件设计的核心内容,结合大量的实例与代码,使其告别了纯理论研究的空泛,将软件设计理论与项目实践完美地结合起来。遵循这样的原则,是因为我们在设计现实的软件,而不是在乌托邦中空想。软件开发,根本就没有乌托邦的乐园。
根据表述内容的不同,全书以渐进但绝非进阶的形式分成了5大篇。
第1篇为“设计之要”,相当于本书的总纲,列举了软件设计的要素,包括设计模式、重构、测试驱动开发、极限编程等。从涵盖面来看,“设计之要”一篇包容了软件设计中最重要的“流行元素”,它们是程序员向设计师“涅 ”的基石,是从小工到专家的修炼法门。受篇幅所限,我在阐述这些重要的设计要素时,只能是浅尝辄止,颇有几分意犹未尽的感觉。然而,我并不希望自己的论述浮于表面,而是希望能够结合具体的实例,深入浅出地解析它们的本质与精神。我希望读者在阅读完这些章节之后,有一种饥饿的感觉,不停地叩问与质疑,然后再“上穷碧落下黄泉”地去搜寻相关的资料,以求获得更加深入的理解。
在第2篇“.NET Framework与设计模式”中,我偷懒地从.NET Framework的现有设计中寻找到有关设计模式的实践,包括Factory Method模式、Composite模式、Decorator模式、Iterator模式与Strategy模式。为了帮助读者更好地理解这些模式,在每一章中,我都采用了“抛砖引玉”的方式,首先分析相关模式的实质,并结合具体实例详解模式的目的与应用场景。最后,.NET Framework粉墨登场,尽显自己主角的魅力。由于.NET Framework是一个庞大的框架,包含的代码浩如烟海,不可能在短短的一章中穷尽其详细的设计。因而,我在引入.NET Framework实例时,力求简洁,删去了与文章主旨无关的代码,并辅以UML图体现设计思想。对于.NET Framework在实现相关模式时独具匠心的一面,我则不遗余力地给予详尽的介绍,力求深入透彻。..
.NET Framework是一道主食大餐,虽然美味可口,却未免有几分油腻。所以,我在第3篇中又上了一道清炒时蔬,希望能够压一压油荤。“媒体播放器的设计之旅”一篇,引入了一个虚构的媒体播放器项目。之所以称为“设计之旅”,是因为媒体播放器的最后完善,确实是一段艰难的征程,设置重重路障的是为我们提供需求的客户。本篇的独有之处是各章既相互独立,又有着藕断丝连般的联系。虽然是项目实践,但无疑更带了几分对相关设计模式探讨与研究的意味。本篇论述的设计模式包括Factory Method模式、Adapter模式、Decorator模式与Visitor模式。
或许第4篇“设计模式应用实践”最能体现本书的价值。它仍然是设计模式项目实践的延续,凸现其价值的原因在于这些项目实践,均是我亲自参与设计与开发的项目。无疑,它们的实现更具有现实的指导意义。我常常在想,究竟是什么阻碍了程序员对设计模式的理解?他们的普遍意见是不患设计模式之艰深难懂,而患设计模式运用之困难重重。怎么将设计模式运用到实际的项目开发中,是他们面对的最大问题。所谓“读书百遍,其义自现”,我想,唯一的解决之道就是实践,实践,再实践。西方有谚语说“Practice make perfect”,翻译为中文就是“熟能生巧”。然而,盲目的实践终归是不成的,我们需要向他们展示一些已经实现了的示例。在对设计模式进行讲解时,我们固然需要示例的精巧、生动与形象,但最重要的特质还是要与实际的开发结合,否则,再贴切的示例都会成为“空中楼阁”。如果仅仅追求比喻的“一鸣惊人”,或许能够加深程序员对设计模式的理解,但对于如何在项目开发中实际运用它们,仍然是一片茫然。本篇论述的设计模式包括Abstract Factory模式、Builder模式、Command模式、Chain Of Responsibility模式、Observer模式、Proxy模式、Strategy模式、Template Method模式以及Bridge模式。
第5篇“.NET体系架构设计”不再围绕设计模式,而是以更高的层次来叙述体系架构设计的诸多模式与原则。有关架构设计的分析最容易流于空泛,而本篇则以PetShop电子商务系统作为体系架构分析的示例,使得内容能够秉承本书一直坚持的项目实践准则。囿于本人所识,本篇无法对体系架构设计的方方面面做出全局的描述,主要介绍了分层式架构设计思想,并论述了相关模式的运用。其中,论述的设计模式包括Abstract Factory模式、Strategy模式、Facade模式、Proxy模式;企业应用架构模式中的Data Mapper模式、Domain Model模式、Page Controller模式以及MVC模式。
本书面对的读者
本书并非一本软件设计的入门指导书,对于程序设计的初学者,本书的内容未免艰深了些。虽然我一直力求讲解浅显明白,试图以最简单的话与最清晰的逻辑阐述设计思想,并佐以丰富的实例展现设计的现实一面;然而,内容的自身特质决定了它不可能成为“从入门到精通”的大百科式全书。
对于一名即将迈入软件设计门槛,或者有强烈渴求希望提高自身设计能力的程序员而言,本书或许能够满足你的这种诉求。假定你已经具备了一定的面向对象设计思想,且具备设计模式的基本知识,那么本书就不会拒你于千里之外了。如果你已经成为了一名合格的软件设计师,那么本书能够带给你的价值,更多的是参考与借鉴的意义。向优秀的软件设计师进发,是一条荆棘之路,本书或许能够磨利你的刀刃,助你披荆斩棘。

序言回到顶部↑

2004年1月13日,出于对技术的一种执着的兴趣,出于想建造一个真正属于开发人员的网上家园的梦想,带着一种冲动与热情,我创建了博客园。博客代表网站中每个用户的小家,园即家园,代表着由小家构成的大家。从此,我踏上了建设程序员网上家园的征途。.
我惊喜地发现很多对技术充满着兴趣和激情、对技术有着执着追求的开发人员正在网上寻找真正属于他们自己的网上家园,当他们发现了博客园,博客园对技术的专注、对技术人员的理解吸引了他们。于是,他们将希望寄托在博客园,在博客园安家,尽情地用精彩的文字分享自己的知识、经验与思考,热情地交流,不为利益,不求回报,只因为那份对技术的执着与热爱。博客园幸运地聚集起这样的人群,在这群技术精英的共同努力下,博客园形成了分享、互助、共同进步的社区氛围。“海纳百川,有容乃大”,正是这样一种如家的氛围吸引着越来越多执着的技术爱好者加入,大家从天涯海角聚在一起,共同分享着技术的乐趣。这就是博客园,一群执着、热情的技术爱好者共同建造的真正属于开发人员群体的网上家园。..
三年多来,我欣喜地看到园子里很多朋友写博客时追求精益求精,不仅给读者带来了很多收获,而且这些朋友自身也不断地得到提高。文章越写越精彩,对技术的理解也越来越深,个人影响力也越来越大,这就是一种成长,在帮助别人的同时自身也得到提高,这也体现出博客园的价值。在博客园,我们不仅可以与天下开发人员共同交流,而且可以让自己不断成长,个人价值不断得到提高,甚至对行业的发展产生影响。
从写博客到写书是一个开发人员在博客园成长的最好见证之一。随着园子里很多朋友的成长,一些朋友开始了写书的历程。写书对开发人员是一个更大的挑战,也是更好地展现自我、帮助别人、对行业产生影响的机会。张逸的这本书是一个代表,因为这本书是在他博客中系列文章的基础上写成的,并且从很多朋友的评论中吸取了养份,所以这本书不只是博客文章的简单整理,更是基于博客文章的更高层次上的提炼。
为了鼓励园子里更多朋友迎接写书的挑战,通过写书在更高层次上去分享自己的知识、经验和思考,给更多人带来帮助,为行业的发展贡献更多的力量,博客园与博文视点合作,策划了博客园的第一个系列图书——博客园开发者征途系列,希望通过该系列图书让园子里更多朋友分享自己在对技术追求的征途中的思考与收获。这本书的出版,也代表着博客园开发者征途系列开始了征途,而我们对技术追求的征途一直在进行。每迈出一步,我们就走得更远,步伐越大,走得就越远,这就是征途。让我们在技术的征途上共同努力,用技术去改变世界!
博客园网站创始人 ...
www.cnblogs.com

评论交流

共有18人开贴评论  19人参与评论  17人参与打分 查看

8人
 47%
用户平均打分
我要写评论 help如何参与评论和打分
5人
 29%
2人
 11%
1人
 5%
1人
 5%

woodhead001

专家级评论员
该会员在china-pub购买过此书 精彩书评
  
该作者发表于:2009-12-23 12:33:00
好书,文笔也很好,专心做事的人。书的好坏就在于作者是否能够用大家都可以理解的角度来让读者明白,GOF的二十三种设计模式我相信能默写出来的大有人在,但是真正能够很好运用在框架设计中的人有多少呢?我很支持原创书籍,特别是像这种由浅入深,浅显易懂的。最后一个字“赞”.
您觉得呢? 送鲜花 (得0支)  扔鸡蛋 (得0个)

hitcc

一级评论员
该会员在china-pub购买过此书 精彩书评
评价等级:  
发表于:2007-6-7 9:44:00
无意间读了作者的《设计之道》电子版 感觉收获颇多 于是顺藤摸到作者blog 惊喜地发现作者竟然出书了 阅读序言 更知此书不容错过
国内技术作者有此文笔者不多矣
下单了
您觉得呢? 送鲜花 (得1支)  扔鸡蛋 (得0个)

lincats
二级评论员
精彩书评
评价等级:  
发表于:2007-6-4 19:29:00
好书,支持.作者本人就是技术方面的行家.
您觉得呢? 送鲜花 (得0支)  扔鸡蛋 (得0个)

guozili
一级评论员
精彩书评
评价等级:  
发表于:2007-5-23 12:33:00
看了4、5天了,觉的里面petshop 4.0 分析的很不错,继续学习中。。。
您觉得呢? 送鲜花 (得0支)  扔鸡蛋 (得1个)

longyaya1314

五级评论员
该会员在china-pub购买过此书
评价等级:  
发表于:2010-2-9 16:26:00
http://www.china-pub.com/34718
您觉得呢? 送鲜花 (得0支)  扔鸡蛋 (得0个)
我要写评论
查看所有评论交流(共18条)