《重构——改善既有代码的设计》
基本信息
打开支付宝首页搜“673273051”领红包,领到大红包的小伙伴赶紧使用哦!
相关书籍
- 《Hadoop权威指南.大数据的存储与分析.第4版中文版》[]
- 《系统架构设计师-免费下载-pdf 》[]
- 《软件设计师教程(第三版)-pdf-免费下载 》[]
- 《精益开发实战-用看板管理大型项目》[]
- 《大话设计模式-pdf-免费下载》[]
- 《面向对象设计与分析-pdf-免费下载》[]
- 《重构——改善既有代码的设计》[]
- 《设计模式之禅作者_ 秦小波.azw3 》[]
- 《程序员必读之软件架构(图灵程序设计丛书)》[]
- 《面向对象开发方法》[]
内容介绍
ç½‘ç›˜ä¸‹è½½é“¾æŽ¥ï¼šã€Šé‡æž„——改善既有代ç 的设计》[www.minxue.net].pdf 32.82 MB
å…±äº«ä¸‹è½½é“¾æŽ¥ï¼šã€Šé‡æž„——改善既有代ç 的设计》[www.minxue.net].pdf 32.82 MB

作者简介
Martin Fowler 世界软件开å‘大师,在é¢å‘对象分æžè®¾è®¡ã€UMLã€æ¨¡å¼ã€XPå’Œé‡æž„ç‰é¢†åŸŸéƒ½æœ‰å“越贡献,现为著å软件开å‘咨询公å¸ThoughtWorks的首å¸ç§‘å¦å®¶ã€‚ä»–çš„å¤šéƒ¨è‘—ä½œã€Šåˆ†æžæ¨¡å¼ã€‹ã€ã€ŠUML精粹》和《ä¼ä¸šåº”用架构模å¼ã€‹ç‰éƒ½å·²ç»æˆä¸ºè„炙人å£çš„ç»å…¸ã€‚
å…¶ä»–å‚编者——
Kent Beck è½¯ä»¶å¼€å‘æ–¹æ³•å¦çš„æ³°æ–—,æžé™ç¼–程的创始人。他是Three Rivers Institute公叿€»è£ï¼Œä¹Ÿæ˜¯Agitar Softwareçš„æˆå‘˜ã€‚
John Brantå’ŒDon Roberts The Refactoryå…¬å¸çš„创始人,Refactoring Browser的开å‘者,多年æ¥ä¸€ç›´ä»Žäº‹ç ”ç©¶é‡æž„的实践与ç†è®ºã€‚
William Opdyke ç›®å‰åœ¨æœ—讯è´å°”实验室工作,他写的关于é¢å‘对象框架的åšå£«è®ºæ–‡æ˜¯é‡æž„æ–¹é¢çš„ç¬¬ä¸€ç¯‡è‘—åæ–‡ç« 。
目录
第1ç« é‡æž„,第一个案例1
1.1 起点1
1.2 釿ž„的第一æ¥7
1.3 分解并é‡ç»„statement()8
1.4 è¿ç”¨å¤šæ€å–ä»£ä¸Žä»·æ ¼ç›¸å…³çš„æ¡ä»¶é€»è¾‘34
1.5 结è¯52
第2ç« é‡æž„原则53
2.1 ä½•è°“é‡æž„53
2.2 ä¸ºä½•é‡æž„55
2.3 ä½•æ—¶é‡æž„57
2.4 怎么对ç»ç†è¯´60
2.5 釿ž„的难题62
2.6 釿ž„与设计66
2.7 釿ž„与性能69
2.8 釿ž„èµ·æºä½•处71
第3ç« ä»£ç çš„å味é“75
3.1 DuplicatedCode(é‡å¤ä»£ç )76
3.2 LongMethod(过长函数)76
3.3 LargeClass(过大的类)78
3.4 LongParameterListï¼ˆè¿‡é•¿å‚æ•°åˆ—)78
3.5 DivergentChangeï¼ˆå‘æ•£å¼å˜åŒ–)79
3.6 ShotgunSurgery(霰弹å¼ä¿®æ”¹ï¼‰80
3.7 FeatureEnvyï¼ˆä¾æ‹æƒ…结)80
3.8 DataClumpsï¼ˆæ•°æ®æ³¥å›¢ï¼‰81
3.9 PrimitiveObsessionï¼ˆåŸºæœ¬ç±»åž‹åæ‰§ï¼‰81
3.10 SwitchStatements(switch惊悚现身)82
3.11 ParallelInheritanceHiera
3.12 LazyClass(冗赘类)83
3.13 SpeculativeGeneralityï¼ˆå¤¸å¤¸å…¶è°ˆæœªæ¥æ€§ï¼‰83
3.14 TemporaryFieldï¼ˆä»¤äººè¿·æƒ‘çš„æš‚æ—¶å—æ®µï¼‰84
3.15 MessageChains(过度耦åˆçš„æ¶ˆæ¯é“¾ï¼‰84
3.16 MiddleMan(ä¸é—´äººï¼‰85
3.17 InappropriateIntimacy(狎昵关系)85
3.18 AlternativeClasseswithDi
3.19 IncompleteLibraryClass(ä¸å®Œç¾Žçš„库类)86
3.20 DataClass(纯稚的数æ®ç±»ï¼‰86
3.21 RefusedBequest(被拒ç»çš„é—èµ ï¼‰87
3.22 Comments(过多的注释)87
第4ç« æž„ç‘æµ‹è¯•体系89
4.1 自测试代ç 的价值89
4.2 JUnit测试框架91
4.3 æ·»åŠ æ›´å¤šæµ‹è¯•97
第5ç« é‡æž„列表103
5.1 釿ž„çš„è®°å½•æ ¼å¼103
5.2 寻找引用点105
5.3 è¿™äº›é‡æž„手法有多æˆç†Ÿ106
第6ç« é‡æ–°ç»„织函数109
6.1 ExtractMethod(æç‚¼å‡½æ•°ï¼‰110
6.2 InlineMethod(内è”函数)117
6.3 InlineTemp(内è”临时å˜é‡ï¼‰119
6.4 ReplaceTempwithQuery(以查询å–代临时å˜é‡ï¼‰120
6.5 IntroduceExplainingVaria
6.6 SplitTemporaryVariable(分解临时å˜é‡ï¼‰128
6.7 RemoveAssignmentstoParam
6.8 ReplaceMethodwithMethodO
6.9 SubstituteAlgorithm(替æ¢ç®—法)139
第7ç« åœ¨å¯¹è±¡ä¹‹é—´æ¬ç§»ç‰¹æ€§141
7.1 MoveMethod(æ¬ç§»å‡½æ•°ï¼‰142
7.2 MoveField(æ¬ç§»å—段)146
7.3 ExtractClass(æç‚¼ç±»ï¼‰149
7.4 InlineClass(将类内è”化)154
7.5 HideDelegate(éšè—“委托关系â€ï¼‰157
7.6 RemoveMiddleMan(移除ä¸é—´äººï¼‰160
7.7 IntroduceForeignMethodï¼ˆå¼•å…¥å¤–åŠ å‡½æ•°ï¼‰162
7.8 IntroduceLocalExtension(引入本地扩展)164
第8ç« é‡æ–°ç»„织数æ®169
8.1 SelfEncapsulateField(自å°è£…å—æ®µï¼‰171
8.2 ReplaceDataValuewithObje
8.3 ChangeValuetoReference(将值对象改为引用对象)179
8.4 ChangeReferencetoValue(将引用对象改为值对象)183
8.5 ReplaceArraywithObject(以对象å–代数组)186
8.6 DuplicateObservedData(å¤åˆ¶â€œè¢«ç›‘视数æ®â€ï¼‰189
8.7 ChangeUnidirectionalAsso
8.8 ChangeBidirectionalAssoc
8.9 ReplaceMagicNumberwithSy
8.10 EncapsulateField(å°è£…å—æ®µï¼‰206
8.11 EncapsulateCollection(å°è£…集åˆï¼‰208
8.12 ReplaceRecordwithDataCla
8.13 ReplaceTypeCodewithClass
8.14 ReplaceTypeCodewithSubcl
8.15 ReplaceTypeCodewithState
8.16 ReplaceSubclasswithField
...
