重构:改善既有代码的设计 读书笔记3

- Inappropriate Intimacy(过于亲密):使用继承复用代码会经常性的引发这种问题,因为子类对父类的了解总是超过后者的主观愿望,如果你觉得这个孩子可以独立生活了,就应该让它离开继承体系,这一点跟面向对象设计原则中的合成聚合复用原则不谋而合。
- Alternative Classes with Different Interfaces(异曲同工):两个方法做同一件事情却有着不同的签名。
- Incomplete Library Class(不完整类库)。
- Data Class(数据类):类的退化结构。我们在分层开发中经常使用的失血模型(事务脚本模式)中的业务实体不就是数据类吗,这明显与面向对象的思想是背道而驰的。
- Refused Bequest(拒绝遗产):如果子类复用了父类的行为,又不愿意支持父类的接口,可以考虑用合成关系聚合关系取代继承关系来消除这种坏味道。
- Comments(注释劣质代码):注释不是用来补救劣质代码的,事实上如果我们去除了代码中的所有坏味道,当劣质代码都被移除的时候,注释已经变得多余,因为代码已经讲清楚了一切。

  彻底根除代码中这些坏味道的方法在《重构》一书的第六章到第十二章,提供了约70条重构建议,其中一部分常用的重构建议在IDE的重构菜单中也能找到。

posted @ 2021-11-14 20:02  往心。  阅读(38)  评论(0编辑  收藏  举报