单一职责原则
因为它太简单了,稍有经验的程序员即使从来没有读过设计模式、从来没有听说过单一职责原则,在设计软件时也会自觉的遵守这一重要原则,因为这是常识。
在软件编程中,谁也不希望因为修改了一个功能导致其他的功能发生故障。
而避免出现这一问题的方法便是遵循单一职责原则。
虽然单一职责原则如此简单,并且被认为是常识,但是即便是经验丰富的程序员写出的程序,也会有违背这一原则的代码存在。
为什么会出现这种现象呢?因为有职责扩散。所谓职责扩散,就是因为某种原因,职责被分化成了更细的职责。
例子1:用一个类描述动物呼吸这个场景
class Animal
{
public void breathe(string animal)
{
Debug.Log(animal + "呼吸空气");
}
}
public class Client
{
Animal animal = new Animal();
void Start()
{
animal.breathe("牛");
animal.breathe("羊");
animal.breathe("猪");
}
}
运行结果:
//牛呼吸空气
//羊呼吸空气
//猪呼吸空气
当需求变动
**程序上线后,发现问题了,并不是所有的动物都呼吸空气的,比如鱼就是呼吸水的