因为中间看了一本其他的书,差不多一个月未跟新读书笔记了,这段时间要补补课,接着上一章继续说说何时重构,文章中很多重构的方法这里还没有说明,后续章节会详细的介绍这些经常使用到的重构方法,尽请期待:
11、平行继承体系(Parallel):每当你为某个类增加一个子类的时候也必须为另一个类增加一个子类。如果你发现某个继承体系的名称前缀和另一个继承体系的名称前缀完全相同的时候就是需要重构的地方了。
12、冗赘类(Lazy Class):你创建的没一个类都得有人去理解它、维护它,这些工作都是要花钱的。如果一个类的所得不值其自身价值那么它就应该消失。
13、夸夸其他未来性(Speculative
Generality):如果所有装置都会被用到,那就值得做;如果用不到,就不值得。它们只会挡你的路,所以,把它搬开吧。
14、令人迷惑的暂时值域(Temporary
Field):有时你会看到这样的对象:其内某个instance变量仅为某种特定情势而设。这样的代码让人不易理解,因为你通常认为对象在所有时候都需要它的所有变量。你应该提炼类,然后把所有和这个变量相关的代码都放进这个新家。
15、过度耦合的消息链(Message
Chains):用户向一个对象索求(request)另一个对象,然后再向后者索求另一个对象,然后再索求另一个对象……这就是消息链(Message Chains)。实际代码中你看到的可能是一长串getThis()或一长串临时变量。采取这种方式,将会导致紧密的耦合性,一旦对象间的关系发生任何变化,客户端就不得不作出相应修改。可以使用Hide Delegate方法进行重构,后续会讲解如何使用。
16、中间转手人(Middle Man):如果一个类接口有一半的函数都委托给其他的类,这样就是过度运用委托,这个时候你应该直接移除中间类,直接和实责对象打交道。
17、狎昵关系(Inappropriate
Intimacy):有时你会看到两个类过于亲密,花费太多时间去探究彼此的私有成分。你可以采用 Move Method
和 Move Field
帮它们划清界线,从而减少狎昵行径。你也可以看看是否运用 Change
Bidirectional Association to Unidirectional 让其中一个class对另一个斩断情丝。如果两个实在是情投意合,可以运用Extract Class
把两者共同点提炼到一个安全地点,让它们坦荡地使用这个新class。或者也可以尝试运用 Hide Delegate
让另一个class来为它们传递相思情。
18、异曲同工的类(Alternative
Classes with Different Interfaces):两个函数做同一件事,确有着不同的签名式,请运用重命名的方式,按照它们的用途重新命名,并反复运用移动函数的方法将某些行为移入类中,直到其协议一致。
19、不完美的程序类库(Incomplete
Library Class):许多程序都建立在封装好的类库上,有些类库并不是那么完美,如果你想要修改它们可以运用Introduce
Foreign Method和Introduce
Local Extension。
20、数据类(Data Class):数据类中不应有Public值域,如果含有容器类值域(Collection Fields),你应该检查它们是否得到了恰当的封装,对于不该被其他类修改的值域,请取消Setting方法。
21、被拒绝的遗赠(Refused
Bequest):有时候继承一个类的子类并不需要使用全部父类的方法,大部分方法甚至与子类并无任何关系这时候你需要用委托的方式来代替继承(Replace
Inheritance with Delegation)。
22、过多的注释(Comments):有时候因为代码很糟糕才写了长长的注释,这个时候尝试重构代码消除长长的注释。
分享到:
相关推荐
笔记的第1-7天可能侧重于介绍重构的基本理论,包括重构的意义、何时进行重构以及如何衡量重构的效果。作者可能会讲解软件设计原则,如开闭原则、单一职责原则等,这些都是重构时需要遵循的重要指导方针。 8-14天...
《重构商业:产业互联网时代的商业模式重构》读书笔记模板.pptx
《从跟随到领先:H为管理体系重构之路》读书笔记.pdf
《从跟随到领先:H为管理体系重构之路》读书笔记.docx
《从跟随到领先:华为管理体系重构之路》读书笔记x.pptx
《从跟随到领先:H为管理体系重构之路》读书笔记.pptx
重构是指在不改变代码外在行为的前提下,对代码进行修改,以改善其内部结构。这一过程可以是局部的,也可以是整体的,目标是使代码更易于理解和修改,同时保持软件功能的稳定。 在源码层面,重构涉及多种技术,如...
重构,简单来说,是在不改变软件外部行为的前提下,对其内部结构进行改进,以提高代码的可读性、可维护性和可扩展性。这一过程并非依赖于个人天赋,而是通过一套严谨的工程化方法来实施,旨在减少在整理过程中引入...
个人读书笔记,学习共享,希望每个苦恼于代码一坨坨混乱不堪的程序员都能学习. * 整洁代码的意义? 可读性,可维护性。 * 如何写出整洁代码? 1.只做一件事 2.不重复 3.有表达力 * 整洁代码的态度要求,要遵守...
读书笔记:重构中一个以高性能、高效率、高兼容性和多功能为目标、多框架平台支持和兼容的Pixiv聊天机器人。
解决这些问题通常需要通过重构,即在不改变外部行为的前提下,改善代码的内部结构。这可能涉及提取方法、引入参数对象、替换条件表达式、拆分类或方法等重构技术。同时,使用重构工具可以自动化这些过程,提高效率。...
下面将详细解读这个领域的核心知识点,并基于"代码质量-读书笔记"的内容展开讨论。 首先,我们要理解什么是代码质量。代码质量不仅仅关乎代码的正确性,更包括其可读性、可维护性、可扩展性等多个方面。良好的代码...
### 《Python编程金典》读书笔记知识点梳理 #### 1. 绪论 绪论部分通常会介绍Python的历史背景、特点以及为什么选择Python作为学习和使用的编程语言。此外,还会涉及Python与其他编程语言的区别,以及它在不同领域...
### PRML读书会笔记知识点概览 #### 一、引言 《Pattern Recognition and Machine Learning》(PRML)是一本经典的机器学习教材,由Christopher M. Bishop撰写。本书以其全面性和深度著称,在机器学习领域内被视为...
总之,这个C++读书笔记程序及源码资源为学习者提供了宝贵的实践材料,通过阅读和理解源码,不仅可以深化对C++语言的理解,还能掌握数据库和界面编程的核心技能。同时,它还提醒我们,理论知识与实际项目相结合是提升...
【美】马丁福勒 著 是国际著名的面向对象分析设计、UML、模式等方面的专家,敏捷开发方法的创始人之一 重构_改善既有代码设计 软件工程领域的超级经典巨著,与另一巨著《设计模式》并称"软工双雄
高桥政史通过自己的经验总结,可能还会分享一些使用方格笔记本的具体案例,以及如何将这种笔记本应用到不同的学习场景中,如课堂笔记、会议记录、读书笔记等。 对于学习方法,作者可能会介绍一些高效笔记技巧,例如...