深入浅出面向对象分析与设计(中文版)
基本信息
原书名: Head First Object-Oriented Analysis & Design
原出版社: O'REILLY
编辑推荐
谁适合读这本书?
如果对于下列问题,你的答案都是“Yes”:
1 知道Java吗? (不必是专家)
2 想要学习、了解、记住并且将面向对象分析与设计应用在现实世界里,并以此流程编写更好的软件吗?
3 喜欢刺激的晚宴对话胜过枯燥乏味的学术演讲吗?
那这本书就适合你。
书籍 计算机书籍
你是否早已对市面上那些只有在成为专家以后读起来才有感觉的ooa&d书籍感到厌倦?你可能早就听说过ooa&d书籍能帮助你写出伟大的软件——让老板高兴、客户满意的软件。
但如何办到呢?
《深入浅出面向对象分析与设计》将告诉你如何分析、设计以及撰写真正面向对象的软件:容易重用、好维护、可扩展的软件;不再使你心碎的软件;让你增添新功能而不会破坏旧机制的软件。在本书中,你将学到:使用诸如封装(encapsulation)与委派(delegation)之类的oo原则建立灵活的应用程序;使用开闭原则(open-closed principle)与单一职责原则(single-responsibilitv principle)提升程序的重用性;学习如何将oo原则、设计模式及各种开发方法通通整合到ooa&d项目的生命周期里;运用uml、用例及用例图来确保所有利害关系人都能清楚地进行沟通,协助你交付正确的软件,达到每个人的要求。
作者: Dave West
Dave West想要自诩为一名电脑极客(sheik geek)。遗憾的是,其他人都不想这样描述他,他们认为他是一个专业的英国人,喜欢以传道士般的无比耐心与热情谈论软件开发的最佳实践。最近,Dave转职到Ivar Jacobson Consulting。在那里,他负责美洲事务。现在,他可以把与人谈论软件开发和推销橄榄球与足球的热情结合起来,并且与人辩论板球比棒球更加刺激的话题。
在为Ivar Jacobson Consulting负责美洲事务之前,Dave为Rational Software(现已成为IBM的一部分)工作过几年。Dave在Rational与IBM担任过许多.. <<
查看详细
[同作者作品 ]
深入浅出面向对象分析与设计(中文版)
介绍
谁适合读这本书?
我们知道你在想什么
元认知
让你的脑袋顺从你的方法
读我
技术审阅团队
致谢
1 伟大软件由此开始:良好应用程序的基石
永远的摇滚乐!
rick的金光闪闪的新应用程序
什么是你要改变的第一件事?
伟大软件……
伟大软件的简易三步骤
先聚焦在功能性上
测试驱动
寻找问题
分析
运用基础的oo原则
设计一次,设计两次
. 改变你的应用程序有多简单?
封装变化之物
委托
最后的伟大软件(就现在而言)
ooa&d关系到编写伟大软件
要点
2 给客户所需之物:收集需求
大显身手的机会来了
测试驱动
不正确的使用(有一点)
那么,需求究竟是什么?
创建需求列表
为错误作规划
替代路径(alternate path)处理系统的疑:
(再次)介绍用例
一个用例,三个部分
按照用例检查需求
你的系统必须在真实世界里运作
认识快乐路径(happy path)
ooa&d工具箱
3 山可移,此情永不渝……现在,情况有变:需求变更
你是英雄!
牺牲品?
软件分析与设计的不变真理
可选路径?替换路径?谁能分得清?
用例对你而言必须合理
从开始到完成:单一场景
替换路径的真心话
完成需求列表
重复程序代码,逊!
最后的测试驱动
写下你自己的设计原则
ooa&d工具箱
4 将你的软件带进现实世界:分析
一只狗,两只狗,三只狗,四只狗……
你的软件有其情境
识别问题
规划解法方案
两位程序员的故事
委托绕道
低耦合应用程序的威力
注意用例里的名词
从好分析到好类……
类图解析
类图不是一切
要点
5 第一部分:诸行无常——良好的设计
rick的吉他事业蒸蒸日上
抽象类
类图解析(再一次)
uml小抄
设计问题的警告
通往伟大软件的三步骤(重访)
插曲:oo大灾难
5 第二部分:给你的软件30分钟的伸展操——灵活的软件
回到rick的搜索工具
仔细瞧瞧search()方法
分析的好处
类实际上关系到行为
设计之死(决策)
将坏的设计决策转变成好的
rick的软件中的“双封装”
不要害怕犯错及改变
瞧!rick的具有灵活性的应用程序
测试驱动rick的设计良好的软件
改变rick的软件有多容易?
变更容易性的大挑战
具有内聚性的类善于处理好单一事情
设计/内聚力生命周期
伟大的软件通常就是“够好的软件”
ooa&d工具箱
6 “我的名字是art vandelay”:解决真正的大问题
解决大问题
关键在于你如何看待大问题
需求与用例是个好起点……
共同性与变化性
整理功能
功能与需求之间的“差别”
用例不总是帮你看出整体轮廓
用例图
小小参与者
参与者也是人(好吧,不全然)
做一点领域分析吧
化整为零,个个击破
别忘了真正的客户是谁
何谓设计模式?
oo&d的威力(以及一些小常识)
ooa&d工具箱
7 为混乱带来次序:架构
感觉有点头昏吗?
我们需要架构
从功能开始
什么是架构的意义?
架构三问
减少风险
场景有助于减少风险
一次把焦点放在一个功能上
架构是你的设计结构
再访共同性
共同性分析:通往灵活软件之路
什么意思?问客户吧。
减少风险有助于伟大软件自
要点
8 原创性被高估:设计原则
设计原则大集合
开关原则(ocp)
ocp,一步一步来
不自我重复原则(dry)
dry完全关系到一个地方一个需求
单一职责原则(srp)
找出多重职责
从多重职责到单一职责
liskov替换原则(lsp)
子类化的误用:误用继承的案例研究
lsp揭露继承结构所隐藏的问题
子类型必须能替换其基类型
违反lsp造成令人困惑的程序代码
将功能性委托给其他类
使用组合将来自其他多个类的行为集合起来
聚合:组合,但没有突然的结束
组合vs.聚合
继承只是选项之一
要点
ooa&d工具箱
9 软件终究为客户服务:重复与测试
你的工具箱满了
伟大软件的编写是迭代进行的
更深入地迭代:两种基本选择
功能驱动开发
用例驱动开发
两种开发方式
功能分析
编写测试场景
测试驱动开发
再探共同性
强调共同性
强调封装
比对你的测试与设计
测试案例解析……
向客户证明
到目前为止,我们一直在按契约编程
按契约编程关乎信任
防御性编程
将你的应用程序分解成较小的功能块
要点
ooa&d工具箱
10 组合在一起:ooa&d生命周期
开发软件,ooa&d风格
对象村旅游
对象村地铁线路图
功能列表
用例反映使用性,功能反映功能性
现在开始迭代
仔细看看地铁的表示
使用或不使用line类……那是个问题
对象村地铁的关注要点(subway类)
保护你的类(还有客户的类)
中场休息
回归需求阶段……
聚焦于程序代码,然后聚焦于客户
迭代(iteration)让问题比较容易
路线看起来像什么?
让自己看看对象村!
第三次迭代,有人要试试吗?
旅程未结束……
附录1:本书遗珠
附录2:欢迎光临对象村
谁适合读这本书?.
如果对于下列问题,你的答案都是“Yes”:
1 知道Java吗? (不必是专家)
2 想要学习、了解、记住并且将面向对象分析与设计应用在现实世界里,并以此流程编写更好的软件吗?
3 喜欢刺激的晚宴对话胜过枯燥乏味的学术演讲吗?
那这本书就适合你。
谁或许应该远离这本书?
如果对于下列的任何一个问题,你的答案是“Yes”:
1 你完全不会Java? (不必是高手,如果不懂Java,懂C#也可以,你可能理解几乎全部的范例程序代码。如果你只有C++的背景,可能也没问题。)
2 你是正在寻找参考书的了不起的OO设计师/开发者吗?
3 你害怕尝试不同的事物?宁可接受牙根管治疗,也不愿意混搭条纹与花格子布?认为将编程概念拟人化的技术书籍不够认真严肃?
我们知道你在想什么。
“这怎么可能是一本严肃的程序设计书籍?”
“这一堆图是干吗的?”
“这样真能让我学到东西吗?”
我们也知道你的脑袋在想什么。
你的脑袋渴望新奇的事物,它总是在搜寻、扫描及等待不寻常的事物。
你的脑袋生来如此,正是这样的特质帮助你常保活力。
那么,对那些每天所面临的一成不变、平淡无奇的事物,你的脑袋又作何反应?它会尽量阻止这些事情干扰大脑的真正工作——处理真正要紧的事。它不会费心去保存那些无聊事,它们绝对无法通过“这显然不重要”的过滤机制。
你的脑袋穷竟怎样知道什么是重要的?假设你去爬山,突然有只老虎跳到你跟前,你的脑袋和身体会怎样反应?
. 神经紧绷,情绪激动,肾上腺素激增!
这就是脑袋“知道”的方式。
这绝对重要!别忘了!
但是,想象一下你在家里或图书馆。这里环境安全、温暖而且没有老虎出没。你正在读书准备考试或者研究某个技术难题——你的老板认为最多花上你7至10天就能完成这个难题。
但是有个问题:你的脑袋却试着帮倒忙。它试图确定这件显然不重要的事不会弄乱你有限的记忆资源。毕竟,记忆资源最好用来保存真正的大事,如遇到老虎与火灾的危险以及绝对不应该穿短裤玩滑雪板。
而且也没有简单的方法可以告诉你的脑袋:“脑袋呀,我非常感谢你!不管这本书多枯燥,多么让我昏昏欲睡,还是请你把这些内容全都记下来吧。”
我们将“Head First”的读看报为学习者。
那么,该怎么学习呢?首先,你必须理解它,然后确定不会忘记它。我们不会用填鸭的方式对待你。根据认知科学、神经生物学、教育心理学最新的研究,学习过程所需要的绝对不只是页面上的文字。我们知道如何帮你的脑袋“开机”。
Head First学习守则:
视觉化。图像比纯文字更容易记忆,让学习更有效率(在知识的回想与转换上会有89%的效率提升)。图像也能让事情更容易理解,将文字放进或靠近相关联的图像中,而不是把文字放在页脚或下一页,会让学习者解读相关内容时可达到事半功倍的效果。
使用对话方式与拟人化风格。最新的研究发现,以第一人称的角度、谈话式风格直接与读者对话,相较于一般的正式叙述方式,学员课后测试成绩的捉升可达40%。以故事代替论述,以轻松的口语取代正式的演说。别太严肃,想一想,是晚宴伴侣的耳边细语还是课堂上的演说更能引起你的注意力?
让学习者更深入地思考。换句话说,除非你主动刺激你的神经,不然大脑就不会有所作为。读者必须被刺激,来自参与,产生好奇心并自发去解决问题,得出结论,最后形成新知识。为达此目的,你必须接受挑战、勤做练习、以问题诱导思考、用活动活化左右脑并触发多重的感知。
让读者集中注意力。我们都有这样的经验:我真的很想学会这个东西,但是还没翻过第一页就已经昏昏欲睡了。你的脑袋只会注章到特殊,有趣、怪异、引人注目以及超乎预期的东西。
新颖、困难、技术性的主题学起来未必枯燥乏味,如果不觉得无聊,你的大脑就会学得快很多。
拨动他们的心弦。现在,我们知道记忆的能力大大取决于情感。你会记得你在乎的事,当你心有所感时,你就会记住。我不是在说小狗和小主人之间心有灵犀的故事,而是在说当你解开谜题、学会别人觉得困难的东西,或者发现自己比工程部的Bob懂得更多时,所产生的惊讶、好奇、有趣以及“我好棒”这类的情绪与感觉。
元认知:关于思考的思考(想一想如何思考)
如果你真的想学习,想学得更快、更深入,那么请注意你是如何集中注意力,想想如何思考,学学如何学习。
大多数人在成长过程中没有修过元认知(metacognition)或学习理论的课程,我们希望学习,却又不知道如何学习。
如果你手里正拿着这本书,我们假设你想学习OOA&D,而且可能不想花费太多时间。因为你即将要开发软件,你必须记住读过的东西。为此目的,你必须理解它。想要从本书(或者任何书、学习经验)得到最多利益,就必须好好地照料你的大脑,让你的大脑奸好注意这些内容。
秘诀在于让你的大脑认为你正在学习的新知识确实很重要,与你的生死存亡有关,就像噬人的老虎一样。否则,你会不断陷入苦战:想要记住这些知识,却总是记不住。
那么,如何让大脑将OOA&D视为一只饥饿的大老虎?
有慢且繁琐的方法,也有快且有效的方法。慢的方法就是多读几次。你很清楚,勤能补拙,再乏味的知识也能学会并记住,只要重复的次数够多,你的大脑就会说:“虽然这感觉上对他不重要,但他却一而再,再而三地苦读这个部分,所以我想这应该是重要的吧!”
较快的方法则是做任何增加大脑活动的事,特别是不同类型的大脑活动。上一页所提到的东西是解法的一大部分,已经证实有助于大脑运作。比方说,研究显示把文字放在它所描述的图片内(而不是置于页面内其他地方,如图片说明或正文),可以帮助大脑尝试将两者关联起来,这会触发更多的神经元。更多的神经元被触发就等同于让大脑有更多机会将此内容视为值得注意的信息并且记录下来。
对话式风格也很有帮助,因为在意识到自己身处对话中时,人们会付出更多的关注,因为他们必须竖起耳朵,注意整个对话的进行,跟上双方的谈话内容。神奇的是,你的大脑根本不在乎那是你与书本之间的“对话”!另一方面,如果写作风格既正式又枯燥,你的大脑会以为正在聆听一场演讲,自己只是一个被动的听众,根本不需要保持清醒。
然而,图片与对话式风格只不过是一个开端。
这是我们的做法:
我们使用图片,因为你的大脑对视觉化效果比较有感觉,而不是文字。对你的大脑来说,一图值“千”字。当文字和图片一起使用时,我们将文字嵌入图片内,因为你的大脑在文字位于它所涉及的图片内时(而不是在图片说明或者埋没在正文的某处)会运作得更有效率。
我们重复表现相同的内容,以不同的表现方式、不同的媒介、多重的感知叙述相同的事物。这是为了增加机会,将该内容烙印在大脑的不同区域。..
我们以超乎预期的方式使用概念和图片,让你的大脑觉得新鲜有趣。我们使用图片和多少具有一些情感的想法,让你的大脑觉得感同身受。让你有感觉的事物,自然就比较容易被记住,即使那些感觉不外乎幽默、惊讶、有趣等。
我们使用拟人化、对所式的风格,因为当大脑相信你正处于对话中,而不是被动地聆听演说时会给予更多关注,即使你交谈的对象是一本书。也就是说你即使在阅读,大脑还是会这么做。
我们包含—了80个以上的活动,因为当你在做事情而不是在读事情时,大脑会学得更多,汜得更多。我们让习题维持在具有挑战性,又不会太难的程度,因为那是多数人所偏爱的情况。
我们使用多重学习风格,因为伪;可能比较喜欢一步一步流程,有些人喜欢先了解整体轮廓,还有些人则喜欢直接看程序代码范例。然而,不管你是哪’一种人,都能够受益于本书以不同方式丧现相同内容的手法。
本书的设计同时考虑了你的左右脑,因为越多的脑细胞参与,就越可能学会并记住,而且保持更长时间的专注。因为使用一边的大脑,往往意味着另一边的大脑有机会休息,你便可以学得更久、吏有效率。
我们也会运用故事和练习呈现多个角度的看法,因为当大脑被迫进行评估与判断时会学,习得更深入。
书中也有相当多的挑战和练习,通过问问题的方式进行,答案不见得都很直接,我们的用意是让你的大脑深涉其中,学得更多、记得更牢。想想看,你无法只是看见人到健身房运动。就让自己实现塑身的效果。但是,我们尽力确保你的努力是用在正确的事情上。你不会花费额外的脑力去处理难以理解的范例,或难以解析、充满行话、咬文嚼字的论述。
我们使用人物。在故事、图片与范例中,处处都是人物,这是因为你也是人。你的大脑对人会比对事物更加注意。
我们采用80/20法则。我们假设,如果你想取得软件设计的博土学位,你不会只看这本书,所以本书不打算包罗一切,我们只提供你实际需要的知识。
让你的大脑顺从你的方法
奸吧,该做的我们都做了,剩下的就靠你了。这里介绍一些技巧,但只是一个开端,你应该听从你的大脑,看看哪些对你的大脑有效,哪些无效。试试看吧!
1 慢慢来,理解越多,需要强记的就越少。
不要光读,要记得停下来,奸好思考。当本书问你问题时,不要完全不思考就直接看答案。想象有人正面对面问你这个问题,如果能够迫使你的大脑思考得更深入,你就有机会学会并且记得更多的知识。
2 勤做练习,写下心得。
我们在书中安排了习题,如果你光看不做,就好像只是看别人在健身房运动自己却不动一样,那是不会有效果的。使用铅笔作答。大量证据显示,学习中的实质活动会提高学习的效果。
3 认真阅读“常问的问题”单元。
详细阅读所有的“常问的问题”。这可不是无关紧要的说明,而是核心内容的一部分,千万别略过!
4 将阅读本书作为睡前最后一件事,或者至少当作睡前最后一件具有挑战性的事。
学习的一部分反应发生在放下书本之后,特别是把知识转化为长期记忆的过程更是如此。你的大脑需要自己的时间进行更多的处理。如果你在此处理期间塞进新知识,某些刚学过的东西将会被遗漏。
5 喝水,多喝水。
你的大脑需要浸泡在充沛的液体内才能运作良好,脱水(往往发生在感觉口渴之前)会减缓认知功能。
6 谈论它,大声谈论它。
说话驱动大脑的不同部位,如果你需要理解某项事物或者加强记忆,就大声说出来。大声解释给别人听,效果更佳。你会学得更快,甚至触发许多新想法,这是光凭阅读做不到的。
7 倾听大脑的声音。
注意你的大脑是否超负荷,如果你发现自己开始漫不经心或者过目即忘,就应该休息厂。当你错过某些重点时,放慢脚步,否则你会失去更多。
8 用心感受!
必须让大脑知道这一切都很重要,你可以让自己融入故事里,为照片加上你自己的说明,即使抱怨笑话太不好笑,都比毫无感觉好,任何感觉对学习效果都有帮助。
9 设计某些东西!
把所学应用到你正在设计的某件新事物中或重做旧项目。反正就是尽量运用知识,获取本书习题与活动之外的实践经验。你所需要的是一个要解决的难题,试着运用我们所谈到的技术解决它。
读我
这是一段学习经验,而不是一本参考书。所有阻碍学习的东西,我们都会刻意排除。第一次阅读时你必须从头开始,因为本书对读者的知识背景做了一些假设。
我们假设你熟悉Java。
教你学会Java可能得花一本书的篇幅(事实上,有一本好书正是为了做这件事:《深入浅出Java》),我们选择把这本书的焦点放在分析与设计上,因此章节的编写是假设你了解基础的Java。然而,当中级或高级的编程概念出现时我们会仔细说明,就像那些概念对你而言是全新的体验一样。假如你对Java全然陌生,或者是以C#或C++的背景为基础来阅读这本书,强烈建议在你继续阅读之前先翻阅本书后面的附录2。该附录介绍了一些必要的材料,让你踏出正确的第一步。
只在必要时才使用Java 5。
Java 5.0引进了许多Java语言的新功能,从泛型(generics)、参数化类型(parameterized type)、枚举类型(enumerated type),到foreach循环构造(construct)。许多专业的程序员正往Java 5前进,但我们不想让你在试着学习OOA&D时还被耽搁在新的语法上。多数情况下,我们尽可能使用Java 5先前的语法,唯一的例外是第1章,在我们需要用到枚举类型时,我们会以某种详细程度解释枚举(enum)。
即使你是Java 5新手,对任何程序代码范例也应该没有什么困难。你会得到一些编译器关于未检查(unchecked)与非安全操作(unsafe Operations)的警告,那是因为我们缺乏类型化集合(typed collection),假如你已经熟悉Java 5,应该能轻易地以Java 5的方式更新它。
不要略过任何活动。
练习与活动并非附加的装饰品,而是奉书核心内容的一部分,有些可以帮助记忆,有些可以帮助理解,还有些可以帮助应用。所以,请不要略过这些练习。填字游戏是唯一非必要的部分,但是它们可以帮助大脑在不同情境下回顾一下学过的字词与术语。对于这部分,中文版将保留原文,方便读者玩此游戏。
重复是刻意且必要的。
我们希望“Head First”系列能让你真正学到东西,希望你读完此书后能够记住所读过的内容。大部分参考用书并不将此当作一个目标。本书的重点放在学习上,所以某些重要的内容会一再出现,加深你的印象。
程序范例尽量精简。
我们的读者告诉我们,不希望看到书中列出200行的程序代码,而当中和主题有关的关键程序代码却只有两行。本书尽量把程序代码缩短,让学习的过程清晰简单。不要期待所有的程序代码都很牢靠或完整,毕竟我们的程序代码是作为辅助学习之用,不见得一定是功能完整的。
在某些例子里,我们并未把所有需要的import语句都包含进来。然而,如果你是Java程序员,你应该知道ArrayList类属于java.util包。如果该import不属于J2SE API,我们会特别说明。所有程序代码都已经放在网络上,可供下载,网址:是http://www.headfirstlabs.com/books/hfoo/。另外,为了把焦点放在程序代码的学习上,我们并未在书中把类放进包中(换句话说,所有类都是位于Java的默认包里)。不建议你在真实的项目里也这么做。
“动动脑”习题没有答案。
对某些人来说,这类习题没有一定的答案,对其他人来说,“动动脑”习题所启发的学习经验在于让你决定你的答案是否正确以及何时正确。在某些练习中,我们会提供暗示,给你指引正确的方向。...
“《深入浅出面向对象分析与设计》对OOA&D这个主题的探讨令人:耳目一新。让:这本书与众不同的主要因素在于它将焦点放在学习上。市面上有太多关于这个主题的书籍,它们花费许多时间告诉你‘为什么’,但都无法让从业人员能够真正运用在项目上,尽管那些书籍充满智慧的火花,却不能符合实务所需。我深信软件工程的未来必然聚焦在从业人员身上,而本书的作者们让OOA&D的内涵对从业人员来说不再遥不可及并且在实务中确实有用。”.
——Ivar Jacobson,Ivar Jacobson顾问公司
“我刚读完这本书,并深深爱上了它!本书设法以UML与用例厘清OOA&D的要点,使读者能够充分理解其中的精髓,甚至对奸的软件设计也有精辟的说明,全都是以节奏紧凑的步调、易于理解的方式进行。我最喜欢的一点就是本书把焦点放在我们为什么要实现OOA&D——写出美妙的软件!通过定义何谓伟大的软件以及显示OOA&D的每个步骤,引领读者实现那个目标,本书甚至让最疲倦不堪的Java程序员明白为什么OOA&D确实很重要。对于Java新手,甚至对已经在业界工作了一段时间,但饱受一些OOA&D‘巨作’惊吓的Java程序员而言,这是绝佳的‘第一本书’。 ”
——Kyle Brown,IBM杰出工程师(Distinguished Engineer)..
“终于,一本OOA&D的好书面世了,它认清UML只是辅助工具,开发软件的首要任务是花时间把各个议题仔细想清楚。”
——Peter McBreen,《Software Craftmanship》的作者
“本书延续‘Head First’系列的风格,对充满娱乐及视觉导向的效果掌握得非常好。然而,隐藏在诙谐图片与有趣文字背后的,是对OOA&D这个主题严肃、睿智且精心的阐述。本书对如何设计程序及有效沟通提出了强有力的观点。我喜欢它使用连续性范例的方式,引导读者体验设计流程的不同阶段。阅读本书时,感觉就像站在专家设计者的肩膀上环顾四方,聆听着他向我一步步、细心解释着那些重要的议题并告诉我为什么。”
——Edward Sciore,波士顿学院计算机科学系副教授
“这是一本精心陈述的奸书,它实现了所有对读者的承诺:如何分析、设计以及编写真正面向对象的软件。本书的内容运用用例,行云流水般地捕获需求,以分析,设计、实现、测试并且反复进行。面向对象软件开发的每一个步骤都被呈现在健全的软件工程原则之下,书中的范例更是清晰且具有说明性。这是一本关于面向对象软件开发的稳固且令人耳目一新的好书。”
——Dung Zung Nguyen,赖斯大学讲师...
评论交流
共有32人开贴评论
40人参与评论
14人参与打分
查看
13人
92%
用户平均打分
1人
7%
0人
0%
0人
0%
0人
0%
书的印刷很不错,纸张很好,内容适合入门者,对刚接触OO分析与设计的人来说,真的是浅显易懂,推荐阅读!还要在实践中不断运用方能发挥出其最大效用~~
非常不错的书,纸质很好,内容也很丰富,可以一次就看个几十页,我最喜欢这样的书,从刚开始的需求,到初步的分析,然后进行重构,逐步求精,慢慢的推导出一个比较好的结果,讲解了很多面向对象的基础原则,当然要熟练的运用,还需要在实践中不断的探索,值得一读。
总的来讲这本书还可以,对于入门者来说算是不错了。不过如果这本书和Martin的企业应用架构模式一起看,对后者的帮助会非常大。
非常适合入门的书,印刷也很棒,我在看英文影印版的~
这本书对OO初学者有很大帮助,真的是讲解得深入浅出。 而且纸张比我以前买的那本Head Servlet&JSP好多了。
加载中...