`

重构阅读笔记2

阅读更多
1、 Rename Method(重新命名函数)
    函数的名称未能揭示函数用途
——修改函数名称
(给函数命名的一个好办法:首先考虑给这个函数写上一句怎样的注释,然后想办法将注释编程函数名)

2、 Add Parameter(添加参数)
   某个函数需要从调用端得到更多的信息
——为此函数添加一个对象参数,让该对象带进函数所需信息)

3、 Extract Method
   你有一段代码可以被组织在一起被独立出来
——将这段代码写进一个独立的函数,并且让函数名称解释该函数的用途

4、 Move Method(搬移函数)
   你的程序中,有个函数与其所驻Class之外的另一个Class进行更多交流,调用后者或者被后者调用。

——在该函数最常引用的class中建立一个有着类似行为的新函数。将旧函数变成一个单独的委托函数,或是将旧函数完全移除。
    当想在target class中使用source class特性,有四种途径可以达到目标:
A、 将这个特性也移除到target class中
B、 建立或使用从target class到source class的引用关系
C、 将source object当作参数传递给target class
D、 如果所需特性是个变量,将它当作参数传递给target method

5、 Move Field
   你的程序中,某个field被其所驻函数之外的另一个函数更多地用到
——在target class中建立一个New Field,修改source field的所有用户令它们改用new field。
   首先使用self Encapsulate Field使得我们可以更轻松地使用move method

6、 Self Encapsulate Field(子封装值域)
    两种观点:
A、 在该变量定义所在的class中,你应该自由(直接)访问它:易阅读
B、 即使在这个class中,你也应该只使用访问函数
    使用访问函数的好处是: subClass得以通过覆写一个函数而改变获取数据的途径;它还支持更多更灵活的数据管理方式如lazy Initialization
    你直接访问一个feild,但与field之间的耦合关系主键变得笨拙;
——为这个值域建立取值/设值函数(get/set),并且只以这种方式来访问field
(通过改名让编译器帮助你查找引用点)

7、 Hide Delegate(隐藏委托关系)
   客户直接调用server Object中的delegate Class
——在server端(某个class)建立客户所需的所有函数,用以隐藏委托关系.
    如客户想知道张三的经理, 其做法为:
客户找到张三——找到张三所对应的部门——部门经理

8、 Remove Middle Man(移除中间人)
   某个class做了过多的简单委托动作
——让客户直接调用delegate类
   上例的逆过程


9、 Introduce Foreign Method(引入外加函数)
   你所使用的server class需要一个额外函数,但你无法修改这个class
—— 在client class中建立一个函数,并以一个server class实体作为第一引数
     但如果你发现自己为一个server class建立了大量外加函数,或如果你发现有许多class都需要用同样的外加函数,你就应该选择Introduce Local Extension


10、 Introduce Local Extension(引入本地扩展)
    你所使用的server class需要一些额外函数,但你无法修改这个class
——建立一个新函数,使它包含这些额外函数,让这个扩展类成为source class的subclas或者wrapper class
分享到:
评论

相关推荐

    [免费高清PDF]31天重构系列笔记.rar

    同时,read.txt文件可能包含作者的前言或阅读指南,提供了学习此笔记的建议和注意事项。 总的来说,《31天重构系列笔记》是C#开发者提升代码质量和效率的宝贵资源。通过系统的练习和学习,开发者可以提升自己的重构...

    重构代码笔记1

    本文以"重构代码笔记1"为出发点,深入探讨了24种常见的代码坏味道及其对应的重构策略。 首先,神秘命名(Mysterious Name)是重构的常见起点,通过改变函数声明和变量名,使其更具描述性,如将`cash0`更改为`cash_...

    重构 学习笔记 refactoring martin fowler

    重构是软件开发过程中的一个重要环节,它涉及到对现有代码的改进,目的是为了提高代码的可读性、可维护性和设计质量,而不改变其外部行为。本文主要围绕重构的关键概念、原则、时机以及面临的挑战展开讨论。 首先,...

    .NET 快速重构 - 学习笔记

    .NET 快速重构学习笔记是针对开发者提升代码质量和可维护性的重要指南。重构是一个系统性的过程,旨在改善软件设计,优化代码结构,而不改变其外在行为。在.NET开发环境中,重构是不可或缺的技能,它可以帮助开发者...

    代码重构总结实例

    - "31天重构学习笔记"可能提供了每日重构技巧和案例,帮助深入理解重构过程。 - "Java重构示例"系列文档可能展示了Java代码重构的具体步骤和实践。 - "SVN搭建和使用手册"及"SVN中文教程"提供了关于SVN的详细指南...

    《重构》----学习笔记

    重构的益处多样,包括改善软件设计,使代码更易于阅读和理解,帮助定位和修复bug,以及提高编程效率。重构应该成为开发过程中的常态,特别是在添加新功能、修复错误或代码审查时,都是进行重构的好时机。当发现代码...

    重构笔记

    《重构笔记》主要探讨的是软件开发过程中的一个重要实践——重构,它是提高代码质量、可维护性和可读性的重要手段。重构是指在不改变代码外在行为的前提下,对代码进行修改,以改善其内部结构。这一过程可以是局部的...

    31天重构学习笔记中文版

    ### 一、重构的概念与实践 #### 1.1 重构的意义 重构是指在不改变代码外部行为的前提下,对其内部结构进行改进的过程。这一过程能够帮助程序员更好地理解和维护代码,提高软件的质量。 #### 1.2 重构的目的 - **...

    重构关键问题整理分析笔记摘要

    根据《重构 改善既有代码结构》一书,摘录重点整理分析得出的一个PPT,希望对大家有点帮助

    31天重构学习笔记.docx

    2. **控制**:封装允许开发者精确地控制集合的访问和修改行为,例如,在添加或移除元素时可以添加额外的业务逻辑。 3. **可维护性**:封装提高了代码的可读性和可维护性,因为外部代码不需要关心集合内部的实现细节...

    重构-改善即有代码的设计

    PDF格式的书籍可以在不同的设备上阅读,易于分享和笔记,为读者的学习和使用提供了极大的便利。然而,技术书籍的价值不仅在于阅读,更在于实践。因此,建议读者在阅读的同时,将理论知识与实际编程相结合,通过具体...

    《重构商业:产业互联网时代的商业模式重构》读书笔记模板.pptx

    《重构商业:产业互联网时代的商业模式重构》读书笔记模板.pptx

    读《重构》的小量笔记

    2. **长函数 (Long Method)**: 当函数变得过长且难以理解时,应考虑将其拆分成多个小函数,每个函数专注于单一职责。这样可以使代码更易读、易测试和易维护。注释通常是对复杂性的补偿,如果一段代码需要注释来解释...

    重构:改善既有代码的设计(第2版)学习笔记

    《重构:改善既有代码的设计(第2版)》是一本由马丁·福勒(Martin Fowler)编著的经典软件工程书籍,主要关注的是如何通过一系列微小的改变来逐步改进现有代码的质量,提升软件设计的可读性、可维护性和可扩展性。...

    重构 改善既有代码的设计笔记

    重构 改善既有代码的设计笔记 网络转载,分享快乐

    《重构_改善既有代码设计》观后感PPT

    【美】马丁福勒 著 是国际著名的面向对象分析设计、UML、模式等方面的专家,敏捷开发方法的创始人之一 重构_改善既有代码设计 软件工程领域的超级经典巨著,与另一巨著《设计模式》并称"软工双雄

    ZeromaXHe#BlogBackup#【笔记】《重构:改善既有代码的设计》第5章-重构列表1

    第5章 重构列表5.1 重构的记录格式每个重构方法都有如下五个部分:概要(summary)简单介绍此重构方法的适用情景,以及它所做的事情。动机(motivati

    重构_改善既有代码的设计.rar

    9. **超星版**:超星版通常指的是电子版,可能包含了一些电子阅读特有的标记或格式,方便读者在线阅读或做笔记,便于随时随地学习和查阅。 总之,《重构:改善既有代码的设计》是一本对于任何软件开发者都极具价值...

    重构-第3章 代码的坏味道-读书笔记

    2. 复杂的条件表达式:过于复杂的if-else语句或switch-case结构往往表明逻辑过于纠结,不易理解。理想情况下,每个方法或类应该有单一的责任。 3. 过长的方法:如果一个方法执行了太多的任务,它就违反了单一职责...

Global site tag (gtag.js) - Google Analytics