美文网首页TDD(测试驱动开发)
重构坏味道:过大的类

重构坏味道:过大的类

作者: Ps天花乱坠 | 来源:发表于2018-01-23 11:14 被阅读0次

过大的类

症状

如果单个类做了太多事情,其内往往包含了太多的实例变量,方法,代码行数,换句话说它可能拥有了太多的职责(单一职责原则)。

Large Class

病因

类通常开始都是很小的。但随着时间的推移,新功能的增加,它们会变得臃肿。 与长方法的情况一样,程序员通常会在现有的类中放置一个新的特性,而不是为该特性创建一个新的类。

导致的健康问题

一个类如果过大那么Duplicated Code可能就出现了, 因为其他类可能也会有相同的实例变量,方法等,并且类如果有太多的职责的话,那么就要花更多的时间去了解清楚哪些代码是相关的,这样无形中增加了维护成本和添加新需求发生bug的几率。

治疗

  • 如果一个类中拥有很多相似的字段,而且方法又都只是和某些实例变量有关系

尝试运用 Extract Class 把这些有关系字段和方法提炼到另一个类
IntelliJ IDEA 练习视频

  • 如果你发现类中的某些方法只被一部分实例用到,其它没有用到

尝试运用 Extract Class 或者 Extract SubClass 这两种方式的抉择就是委托和继承之间的抉择,Extract SubClass 通常更容易,但它也有限制:一旦对象创建完成,你无法再改变对象行为。而委托更灵活一些(策略模式)。
IntelliJ IDEA 练习视频

Large Class Refactoring

康复

开发者不需要记住太多的实例变量,方法,只需要记住哪个类所具备的职责就可以。
重构后的类在一定程度上也避免了代码和功能的重复(Duplicated Code)

Large Class After Refactoring

相关文章

网友评论

    本文标题:重构坏味道:过大的类

    本文链接:https://www.haomeiwen.com/subject/chojaxtx.html