
Refactoring
文章平均质量分 76
著一
每一段新的代码在我手中诞生对我来说就象观看刹那花开的感动!
展开
-
《重构-改善代码既有的设计》重构,第一个案例
起点:编写3个类的代码 1、第一个类-影片(Movie):package com.lee.test.aFirstExample;public class Movie { /** * @param title * @param priceCode */ public Movie(String title, int priceCode) {原创 2016-11-16 17:15:34 · 3130 阅读 · 2 评论 -
《Refactoring》,Replace Temp with Query(以查询取代临时变量)
我们遵循这样一条原则:每当感觉需要以注释来说明点什么的时候,我们就把需要说明的东西写进一个独立函数中,并以其用途(而非实现手法)命名。我们可以对一组或甚至短短一行代码做这件事。哪怕替换后的函数调用动作比函数自身还长,只要函数名称能够解释其用途,我们也该毫不犹豫地那么做。关键不在于函数的长度,而在于函数「做什么」和「如何做」之间的语义距离。如何确定该提炼哪一段代码昵? 一个很好的技巧是:寻找注释。它们原创 2016-11-21 17:32:26 · 319 阅读 · 0 评论 -
《Refactoring》,Split Temporary Variable (分解临时变量)
开门见山 发现:你的程序有某个临时变量被赋值超过一次,它既不是循环变量,也不被用于收集计算结果。 解决:针对每次赋值,创造一个独立、对应的临时变量。动机 在某些情况下,临时变量用于保存一段冗长代码的运算结果,以便稍后使用。这种临时变量应该只被赋值一次。如果它被赋值超过一次,就意味着它们在函数中承担了一个以上的责任。如果临时变量承担多个责任,它就应转载 2016-11-21 17:50:16 · 347 阅读 · 0 评论 -
《Refactoring》,Remove Assignments to Paraments(移除对参数的赋值)
xxx转载 2016-11-22 17:36:30 · 413 阅读 · 0 评论 -
《Refactoring》,Substitute Algorithm(替换算法)
开门见山发现:你想要把某个算法替换为另一个更清晰的算法。 解决:将函数本体替换为另一个算法。 //重构前 String foundPerson(String[] people){ for (int i = 0; i < people.length; i++) { if(people[i].equals("Don")){转载 2016-11-22 17:58:13 · 376 阅读 · 0 评论 -
《Refactoring》,Move Method(搬移函数)
我们都知道,类往往因为承担过多的责任而变得臃肿不堪。这种情况下,一般会使用”提炼类”这种手法将一部分责任分离出去。如果一个类变得”不负责任”,一般会使用“内联类”这种手法将它融入另一个类。如果一个类使用了另一个类,一般会运用”隐藏委托关系”手法将这种关系隐藏起来通常是有帮助的。有时候隐藏委托关系会导致拥有者的接口经常性地变化,这时就可考虑使用”移除中间人”这种手法了。 从本文开始将转载 2016-11-23 10:25:00 · 585 阅读 · 0 评论