一天一个重构方法(28):下移方法
2009-08-23 19:02:42摘要:Push Down Method:下移方法 与下移字段一样,如果父类中某个方法只与部分子类有关,将这个方法移到相关的那些子类去。 阅读全文
摘要:Push Down Method:下移方法 与下移字段一样,如果父类中某个方法只与部分子类有关,将这个方法移到相关的那些子类去。 阅读全文
摘要:Push Down Field:下移字段 与上移字段相反的重构是下移字段,如果父类中某个字段只被部分子类用到,将这个字段移到需要它的那些子类去。 阅读全文
摘要:Pull Up Mothod:方法上移 今天介绍的重构方法和上一篇字段上移十分类似。我们今天处理的不是字段,而是方法。 有些方法,在各个子类中产生完全相同的结果,将该方法移至到父类。 阅读全文
摘要:Pull Up Field:字段上移 两个子类拥有相同的字段,将此一字段上移到父类。 阅读全文
摘要:Extract class:提炼类 你也许听过类似这样的教诲:一个class应该是一个清楚的抽象,处理一些明确的责任。但是在实际工作中,class会不断成长扩展。于是随着责任不断增加,这个class会变得很复杂。很快这个class就会变成一团乱麻。建立一个新的class,将相关的字段和方法从旧class搬移到新class。 阅读全文
摘要:Introduce Design By Contract:契约式设计 契约式设计(DBC,Design By Contract)定义了方法应该包含输入和输出验证。因此,可以确保所有的工作都是基于可用的数据,并且所有的行为都是可预料的。否则,将返回异常或错误并在方法中进行处理。在我们的示例中,输入参数很可能为null。由于没有进行验证,该方法最终会抛出NullReferenceException。在方法最后,我们也并不确定是否为用户返回了一个有效的decimal,这可能导致在别的地方引入其他方法。 阅读全文
摘要:某个函数返回的对象,需要由函数调用者执行向下转型动作,将向下转型动作移到函数中。 阅读全文
摘要:你希望在创建对象时不仅仅是对它做简单的建构动作,将构造函数替换为工厂函数。 阅读全文
摘要:Replace Exception with Test:以测试取代异常 面对一个调用者可预先加以检查的条件,你抛出了一个异常,请修改调用者,使它在调用函数之前先做测试。 阅读全文
摘要:Replace Error Code with Exception:以异常代替错误码 某个函数返回一个特定的代码,用以表示某种错误情况,请改用异常。 阅读全文