随笔分类 - 31天重构
主要从 Sean Chambers 的博客 翻译而来,通过理解他的博客,加入自己的一些理解和见解,记录学习,分享他人
原博客地址:https://lostechies.com/seanchambers/2009/07/31/31-days-of-refactoring/
    
摘要:理解:策略就是平常设计模式中所说的策略模式。因为当你有一个庞大的switch方法的时候,每一次新加一个条件,都要去修改这个方法,这样耦合性太高,不易维护也不易扩展。这样我们就可以使用策略的设计模式,使得每一种情况都封装在自己的类中,来提高扩展性和降低耦合性。 详解: 为了完成switch重构,我们需
        阅读全文
            
摘要:理解:经常写的代码中,有一些计算逻辑比较复杂的方法,写下来一个很长很长的方法,我们可以把这个方法,根据功能,分解成单独的几个小方法。这样做不仅能够增加代码的可维护性,而且增加了易读性。 详解: 重构前代码: 我们看到CalculateGrandTotal方法,里面用到了2个foreach循环,看一下
        阅读全文
            
摘要:理解:提取接口的意思是,多于一个类共同使用某个类中的方法或属性,那么我们可以把这些方法和属性提出来,作为一个单独的接口。这样的好处是解除代码间的依赖,降低耦合性。 详解: 先看重构前的代码: RegistrationProcessor 类只使用到了ClassRegistration 类中的Creat
        阅读全文
            
摘要:理解:根本没有父子关系的类中使用继承是不合理的,可以用委派的方式来代替。 详解:我们经常在错误的场景使用继承。继承应该在仅仅有逻辑关系的环境中使用,而很多情况下却被使用在达到方便为目的的环境中。 看下面的代码场景: 在这个例子中,Child并不是一个Sanitation,两者没有直接的逻辑关系。孩子
        阅读全文
            
摘要:理解:重命名就是把一些函数、字段、类、参数的名称 重命名为易于理解,最好是和自身的意义相同的名称。这样更易于理解,也可以减少大量的注释,名字即含义。 详解: 这个重构方法是我经常也是最常用的一种。我们经常给函数、类、字段等命名为一些难以理解,没有实际意义的名称,这样过段时间或者别人看你写的代码的时候
        阅读全文
            
摘要:理解:和提升字段正好相反,跟降低方法类似,就是把基类中,只有部分继承类需要用到的字段,降低到继承类自身去。 详解: 重构前代码: 重构后代码: 把 _resolution字段降低到继承类 BugTask中去。
        阅读全文
            
摘要:理解:提升字段和前面讲解的方法提公很类似,可以说方式都是一样的。就是把继承类中经常用到的字段,提出来 放到基类中,达到通用的目的。提高代码重用性和可维护性。 详解:如下重构前的代码: 从代码乐意看出,Account类的继承类CheckingAccount和SavingsAccount都有一个相同的字
        阅读全文
            
摘要:理解:降低方法,就是把基类中的某个方法,提出来放到继承类当中去。 详解: 上一节我们讲了方法的提公,是把多于一个继承类都要用到的方法,提出来放到基类中去,来提高代码的可维护性和重用性。那么这一节,我们所讲述的正好相反。就是把基类中不常用的方法,或者只有某个继承类会用到的方法,踢出去,搬移到需要他的类
        阅读全文
            
摘要:理解:方法提公,或者说把方法提到基类中。 详解:如果大于一个继承类都要用到同一个方法,那么我们就可以把这个方法提出来放到基类中。这样不仅减少代码量,而且提高了代码的重用性。 看重构前的代码: 我们可以看出来Turn 转弯 这个方法,Car需要,Motorcycle 也需要,小车和摩托车都要转弯,而且
        阅读全文
            
摘要:     现在就重构来说是非常普通的,虽然我们经常会漏掉或忽略一些需要重构的地方。方法搬移,正如所定义的那样,把方法搬移到更适合他的位置。让我们看看下面这一段重构前的代码: 理解:方法搬移,正如所定义的那样,把方法搬移到更适合他的位置。 详解:如果一个类中某个方法,经常被其他类使用(比自身使用的次数
        阅读全文
            
摘要:理解:封装集合就是把集合进行封装,只提供调用者所需要的功能行借口,保证集合的安全性。 详解:在大多的时候,我们没有必要把所有的操作暴露给调用者,只需要把调用者需要的相关操作暴露给他,这种情况中下我们就要对其进行封装,只把调用者需要的部分暴露出来。 我们先看一个例子:  如果我们对集合只允许调用端读取
        阅读全文
            
摘要:最近有幸,发现一个博友的博客中对代码重构,做了一番简单的讲解。觉得很不错,比较浅显移动,一口气读完了。今天通过自己的理解,翻译一下,可能有很多不对的地方,请大家指正。共同学习,共同进步。 原博客地址:https://lostechies.com/seanchambers/2009/07/31/31-
        阅读全文
            
                    
                
浙公网安备 33010602011771号