SOLID-单一职责原则
单一职责原则:一个模块的功能只能因为一个原因进行修改。 单一职责介绍 我们假设一个场景: 有一个动物类,它会呼吸空气,用一个类描述动物呼吸这个场景: class Animal{ public function breathe(string $animal){ echo $animal . "呼吸空气"; } } $animal = new Animal(); $animal->breathe("牛"); $animal->breathe("羊"); $animal->breathe("猪"); 当有一天我们发现并不是所有的动物都呼吸空气,例如水生的动物他们呼吸的是水,我们就需要进行如下的代码改动。 class Animal{ public function breathe(string $animal,string $type){ if ($type == "terrestrial") { echo $animal . "呼吸空气"; } else { echo $animal . "呼吸水"; } } } $animal = new Animal(); $animal->breathe("牛","terrestrial"); $animal->breathe("羊","terrestrial"); $animal->breathe("猪","terrestrial"); $animal->breathe("鱼","aquatic"); 上述代码的改动就违反了单一原则,breathe 方法会因为两个因素造成修改,分别是 terrestrial 和 aquatic 。 这种违反会带来什么问题,最直观的问题就是会更容易造成 bug, 比如我们 terrestrial 需要增加新的功能,在些新功能的时候引入了一些 bug ,这将导致 aquatic 的代码块也无法执行,具体例子如下:...