【《重构 改善既有代码的设计》学习笔记5】重构列表

本篇文章的内容来自《重构 改善既有代码的设计》一书学习笔记整理并且加上自己的浅显的思考总结!重构列表,为重构提供一个坚实的起点,支持后面的重构工作!1、重构的记录格式书中说:每个重构手法都有如下五个部分。名称(name),建造一个重构词汇表,名称是很重要的。简单的概要(summary),介绍此重构手法的使用情景,以及它做的事情。动机(motivation),为什么需要这…

大家好,又见面了,我是全栈君。

本篇文章的内容来自《重构 改善既有代码的设计》一书学习笔记整理并且加上自己的浅显的思考总结!

重构列表,为重构提供一个坚实的起点,支持后面的重构工作!

1、重构的记录格式

书中说:每个重构手法都有如下五个部分。

  • 名称(name),建造一个重构词汇表,名称是很重要的。

  • 简单的概要(summary),介绍此重构手法的使用情景,以及它做的事情。

  • 动机(motivation),为什么需要这个重构? 什么情况下不改使用这个重构。

  • 做法(mechanics),简明扼要的一步一步介绍如何进行此重构。

  • 范例(examples),十分简单的一个例子说明此重构手法如何运作。

在说明一下,概要 包括三个部分:

(1)一句话,介绍这个重构能够帮助解决的问题;

(2)一段简短的陈述,介绍你应该做的事;

(3)一幅速写图,简单的展示重构前后示例。有时候一图胜千言,可用UML图等表达清楚即可。

在说明一下,做法 ,如果你知道该用哪个重构,但记不清具体步骤,可以参考 “做法”部分。

【后面学习重构手法会具体的根据上述格式进行,每一项重构手法自成一体,并且根据整理,这个重构列表可以作为参考工具】

2、寻找应用点

很多重构要求你找到对于某个函数、某个字段或类的所有引用点。【目前很多开发工具如java的Eclipse和Idea都能相当准确找到程序元素的引用点】

不要盲目的查找-替换。应该检查每一个引用点,确定它的确指向你想要替换的东西。

3、这些重构手法有多成熟

重构的基本技巧——小步前进,频繁测试。

许多重构手法,都涉及向系统引入设计模式。设计模式,为重构行为提供了目标。模式和重构之间有一种与生俱来的关系。模式是你希望到达的目标,重构则是到达之路.

运用重构的时候,请记住: 它们仅仅是一个起点。 在这个起点上,然后不断地努力提高自己的重构能力,这才是重构最终带给我们的。

总结

这一章 是为了后面的重构手法介绍打下基础,一起开启重构手法之路的学习

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/121050.html原文链接:https://javaforall.net

(0)
上一篇 2022年2月27日 下午10:00
下一篇 2022年2月27日 下午10:00


相关推荐

  • 5G网络切片综述 — 1

    5G网络切片综述 — 1简介随着5G时代的来临,21年的SA在国内的全范围商用,现阶段人们对于5G的必要性认识还不足。主要是目前人们用的5G主要集中在eMBB(enhancedMobileBroadband)即增强型移动带宽的阶段,而大数据业务如在线直播、高清视频等在4G上都得到了很好的支持,所以带宽的继续增大对于用户体验的边际效应递减。5G所带来的真正改善并不仅仅是在于大带宽,而在于5G提供了在同一张物理5G网络的情况下,同时能够提供eMBB,URLLC(Ultra-ReliableLow-LatencyCommun

    2022年10月2日
    4
  • Android实现点击两次返回退出APP

    Android实现点击两次返回退出APPAndroid实现点击两次退出APP这两天在做一个项目碰到这么个问题,需要主界面点击两次直接退出整个APP而不是返回上一个界面,查找了网上的资料,整合和修改了一下写了这篇博客。这里我主要以我的项目

    2022年7月1日
    29
  • 二叉树的非递归前序、中序、后序遍历算法详解及代码实现(C语言)

    二叉树的非递归前序、中序、后序遍历算法详解及代码实现(C语言)转载请注明出处 https blog csdn net Benja K article details 二叉树的非递归前 中 后序遍历算法详解及代码实现 C 语言 1 前序遍历和中序遍历非递归算法思路前序和中序非递归遍历的 C 代码 2 后序遍历非递归算法思路后序非递归遍历的 C 代码 1 前序遍历和中序遍历非递归算法思路遍历过程 如图所示 图 1 前

    2026年3月19日
    2
  • 64位ubuntu 14.04安装32位dr.com客户端教程(不用安装glibc.i686 libstdc++.i686)

    64位ubuntu 14.04安装32位dr.com客户端教程(不用安装glibc.i686 libstdc++.i686)64位的ubuntu没32位的运行库真是令人bei

    2022年5月12日
    41
  • Spring IOC 之解析 bean 标签:开启解析进程,BeanDefinition

    Spring IOC 之解析 bean 标签:开启解析进程,BeanDefinitionSpring IOC 之解析 bean 标签:开启解析进程,BeanDefinition

    2022年4月20日
    56
  • css清除默认样式_htmlclearboth

    css清除默认样式_htmlclearbothCSSclear属性   –定义和用法clear属性规定元素的哪一侧不允许其他浮动元素。说明:在CSS1和CSS2中,为清除元素增加外边距实现的。在CSS2.1中,会在元素上外边距之上增加清除空间,而外边距本身并不改变。可能的值值描述left在左侧不允许浮动元素。right在右侧不允许浮动元素。…

    2025年10月28日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号