概念
指进行任何功能的修改都要对许多不同的地方进行许多小的修改
原因
问题出现的原因在于没有遵循SOLID的单一职责原则,也就是一个对象或者一个类只包含单一的职责,并且该职责被完整的封装在一个类中,即又定义又有且仅有一个原因使类变更。
霰弹枪手术问题是因为一个单一的责任被分散到大量的类中
解决
- 遵顼单一职责原则,通过移动类、方法或者文件将现有的类的行为移动到单个类中,如果没有可选的类,就单独创建一个新类
- 如果将代码移动到同一个类使得原始类几乎为空,可尝试使用**内联类**摆脱这些现在冗余的类
好处
- 更好的组织代码结构
- 减少代码重复,提高复用
- 更容易维护