概念

指进行任何功能的修改都要对许多不同的地方进行许多小的修改

原因

问题出现的原因在于没有遵循SOLID单一职责原则,也就是一个对象或者一个类只包含单一的职责,并且该职责被完整的封装在一个类中,即又定义又有且仅有一个原因使类变更。

霰弹枪手术问题是因为一个单一的责任被分散到大量的类中

解决

  • 遵顼单一职责原则,通过移动类、方法或者文件将现有的类的行为移动到单个类中,如果没有可选的类,就单独创建一个新类
  • 如果将代码移动到同一个类使得原始类几乎为空,可尝试使用**内联类**摆脱这些现在冗余的类

好处

  • 更好的组织代码结构
  • 减少代码重复,提高复用
  • 更容易维护