描述
一个类应该专注于实现一个功能。
好处
便于代码复用
举例
俄罗斯方块游戏,首先可以想到的是游戏逻辑与界面的分离,也就是说逻辑一个类,界面部分一个类。这样做的好处就是我们可以复用游戏逻辑的代码,例如我们用java写了一个基于PC端的俄罗斯方块游戏,假如之后又要写一个基于Android端的俄罗斯方块,那么我们就可以把PC端的游戏逻辑类拿过来直接使用,不需要任何的修改。
反过来讲,假如我们把游戏逻辑与游戏界面全部都耦合在了一起,以面向过程的方式去实现,那么当我们想要复用这些代码就变得无比困难,需要把一坨代码粘贴过来,有的删除有的修改,出了BUG然后哼哧哼哧地去修改,简直是烦透了,糟心。。。。。。
对比理解
假如我们要设计制造一台PC电脑,有两种做法:
1制造一个互相连接的整体
2分成各个部件:显示屏、鼠标、键盘、主机外壳、CPU、主板、内存条、显卡、散热器、电源。。。。。。
我们所说的单一职责原则设计思想就是第二种做法,各个部件实现其特定功能,各个部件之间的连接通过某种标准进行,这样的好处无疑是巨大的,我们可以自由选择部件组装成一台电脑,显示屏坏了我们只需要换显示屏,当不用电脑后可以把各个部件有效复用。