处理概括关系 11.1 Pull Up Field (字段上移) 两个子类拥有相同的字段,将字段移至超类 11.2 Pull Up Method...
重新组织数据 8.1 Self Encapsulate Field (自封装字段) 为字段建立取值/设值函数,并且只以这些函数来访问字段 间接访...
在对象之间迁移数据 7.1 Move Method (搬移函数) 如果一个类有太多行为,或如果一个类与另一个类有太多合作而形成高度耦合,就需要搬...
第三章 代码的坏味道 重复代码 过长函数 过大的类 过长参数列 发散式变化(某个类经常因为不同的原因在不同的方向上发生变化) 霰弹式修改 (每遇...
第一章 重构的基础: 我们需要为即将修改的代码建立一套可靠的测试环境,为了使重构的结果能够得到保证,我们需要可靠的测试方式 分解并重组: 分解和...
首先,写一个demo: 运行后,一定会报如下的错误: 这个错误是怎么来的呢,所谓的token null is not valid中的token又...
1. 前言 在上篇关于lambda表达式实现方式的文章中,有提到一个概念叫做MethodHandle,当时的解释是类似于C/C++的函数指针,但...
当我们提起java lambda表达式的实现时,第一反应一定是:这就是java的语法糖啊,它实现肯定还是匿名内部类啊! 但是,事实真的是这样么?...
1. 概念 首先我们来复习一下java内存模型,java运行时数据区大概分为五块,分别是 方法区 虚拟机栈 本地方法栈 堆 程序计数器 而运行时...