重构与模式(修订版)(txt+pdf+epub+mobi电子书下载)|百度网盘下载
作者:[美]JoshuaKerievsky着
出版社:人民邮电出版社
格式: AZW3,DOCX,EPUB,MOBI,PDF,TXT
试读重构与模式(修订版):
前言
本书主旨
本书讲述的是重构(改善既有代码设计的过程)与模式(针对反复出现的问题的经典解决方案)的结合。本书建议,使用模式来改善既有的设计,要优于在新的设计早期使用模式。这对于已经存在几年和几分钟的代码都同样适用。我们通过一系列低层次的设计转换,也就是重构,来应用模式,改进设计。
本书目的
写这本书是为了帮助读者:
了解如何结合重构和模式;
以模式向的重构(pattern-directed refactoring)改进现有代码的设计;
找出需要模式导向重构的代码段;
了解为什么使用模式来改新设计的早期使用模式要好。
为实现这些目的,本书包含以下特点:
目录包含27种重构方法;
示例基于实战代码,没有纯示意玩具代码;
模式的描述,包括实际的模式示例;
一组坏味[1](即问题)表示需要重构模式导向;
实现不同模式的示例;
何时应通过重构实现模式、趋势模式和去除模式提出建议。
本书提出了学习顺序的建议,以帮助个人和小组学习书籍中的27种重构。
读者对象
这本书的读者是从事或有兴趣改进现有代码设计的目标程序员。他们中的许多人正在使用模式和重构,但从未通过重构实现过模式。一些程序员对重构和模式知之甚少,但愿意了解更多。
本书适用于新项目开发(从零开始编写新系统或特征)和遗留开发(主要维护遗留系统)。
所需背景
本书要求读者熟悉紧耦合、松耦合等设计概念,以及继承、多态、包装、组合、界面、抽象和具体类别、抽象和静态方法的概念。
使用书中的示例Java代码。我发现对于大多数面向对象的程序员来说,Java所有的代码都很容易理解。我有意识地不使用。Java独特的特点,所以无论你是否习惯使用它C 、C#、Visual Basic .NET、Python、Ruby、Smalltalk,或者其他面向对象的语言编程应该能够理解本书中的代码。
本书与Martin Fowler经典著作《重构》[F]密切相关。这本书包含了许多低层次的重构,如:
提炼函数(Extract Method)
提炼接口(Extract Interface)
提炼超类(Extract Superclass)
提炼子类(Extract Subclass)
函数上移(Pull Up Method)
搬移函数(Move Method)
函数改名(Rename Method)还有一些更复杂的重构,比如:
以委托代替继承(Replace Inheritance with Delegation)
多态取代条件表达式(Replace Conditional with Polymorphism)
以子类取代类型码(Replace Type Code with Subclasses)
为了理解本书中介绍的模式导向的重构,读者不需要理解上面列出的所有重构;相反,您可以跟解释这些重构的示例代码来学习。然而,如果你想获得阅读这本书的最佳效果,我建议你同时有一个重构。这本书是一种无价的重构资源,对理解这本书非常有帮助。
我想讨论的模式来自经典书籍《设计模式》[DP],还有 Kent Beck、Bobby Woolf等待作者和我自己的工作。我和同事在实际项目中实践了重构实现、重构趋势和重构去除模式。通过学习模式导向的重构,您将了解如何重构实现、重构趋势和重构去除书中没有提到的模式。
阅读这本书不需要提前成为这些模式的专家,但理解这些模式当然有帮助。为了帮助读者理解讨论的模式,这本书包含了一些简单的模式总结和模式UML实现代码的略图和许多示例。为了更详细地理解模式,我建议您结合研究引用的模式文献,同时学习本书。
本书使用UML 2.0表示法。如果是对的UML如果你不熟悉,别担心。我只知道它的大致性。写这本书的时候,Fowler的《UML精粹》[Fowler,UD]一本书经常和我在一起,不时查阅。
如何使用这本书
要对本书中的重构有一个大致的了解,我们可以从每个重构的总结中学习(见 5.1 节),以及每次重构中动机节的优缺点。
为了更深入地理解重构,除了实践部分外,还应该研究每个重构的各个部分。实践部分更为特殊,其目的是帮助读者通过建议应遵循哪些低层次的重构来实现重构。理解本书中的重构,不需要阅读本部分。本节更有可能作为实际重构的参考。
本书及《重构》[F]讨论的代码不好(code smell),是识别设计问题和找到有助于解决问题的相关重构的一种有益方式。也可以查看本书及《重构》中的重构列表(按字母顺序排列),找到能够改进设计的重构。
本书记载了设计实现、趋势和去除模式的重构。帮助你找到开始的方向,3.4 节专门讲述了这个主题。本书还列出了所有模式的名称和可用于设计实现、趋势和去除模式的重构。
本书历史
我从1999年开始写这本书。当时有几个因素促使我为模式、重构和极限编程(extreme programming,XP)[Beck,XP]写点什么。首先,我惊讶地发现,XP文献中没有提到模式。所以我写了一篇名为Patterns
作者:张小伟
链接:https://www.58edu.cc/article/1508005299229933570.html
文章版权归作者所有,58edu信息发布平台,仅提供信息存储空间服务,接受投稿是出于传递更多信息、供广大网友交流学习之目的。如有侵权。联系站长删除。