我知道重构就是“改变程序的结构,这样功能就不会改变”。我和一些在大学期末项目中一起工作的同事交谈过,我很惊讶他们对重构有着更多的 广阔的空间观点(用一个更好的词来形容)。
我认为重构就是提取方法和重命名类之类的事情。他们还建议改变数据结构(比如从 Java LinkedList
到 ArrayList
) ,改变算法(使用合并排序而不是冒泡排序) ,甚至将大块代码重写为重构。
我很确定他们是错的,但我不能给出一个很好的理由,因为他们的建议改变了程序(可能使它更好) ,但没有改变它的行为。我说的对吗,更重要的是,为什么?