2_代码常见问题.png
代码重复
实现逻辑相同、执行流程相同
方法过长
方法中的语句不在同一个抽象层级
逻辑难以理解在线课堂,需要大量的注释
面向过程编程而非面向对象
过大的类
类做在线课堂了太多的事情
包含过多的实例变量和方法
类的命名不足以描述所做的事情
逻辑分散
发散式变化:某个类经常因为不同的原因在不同的方向上发生变化
散弹式修改:发生某种变化时在线课堂,需要在多个类中做修改
严重的情结依恋
某个类的方法过多的使用其在线课堂他类的成员
数据泥团 / 基本类型偏执
两个类、方法签名中包含相同的字段或参数
应该使用类但使用基本类型在线课堂,比如表示数值与币种的 Money 类、起始值与结束值的 Range 类
不合理的继承体系
继承打破了封装性在线课堂,子类依赖其父类中特定功能的实现细节
子类必须跟着其父类的更新而演变在线课堂,除非父类是专门为了扩展而设计,并且有很好的文档说明
过多的条件判断
过长的参数列
临时变量过多
令人迷惑的暂时字段
某个实例变量仅为某种特定情况而设置
将实例变量与相应的方法提取到新的类中
纯数据类
仅包含字段和访问(读写)这些字段的方法
此类被称为数据容器在线课堂,应保持最小可变性
不恰当的命名
命名无法准确描述做的事情
命名不符合约定俗称的惯例
过多的注释