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