前言
本篇是概念篇,无代码
小菜手机的故事
小菜买了个新手机,向大鸟炫耀他的手机有诸多功能,比如听歌,拍照,玩戏,听音乐等,但是大鸟不以为然,认为手机只需要打电话就够了,没必要花里胡哨
小菜看到一个UFO,用新手机拍了下来,然而放上电脑只看到一个白点,苦笑道"没用的东西"
小菜的手机虽然集成了很多功能,却不精通,拍照显然不如相机,就相机而言,只有一个拍照功能,而且做到几乎完美,在编程的角度,这有点类似于一个单一职责的类,我们需要追求的是单一职责的类
单一职责原则(SRP)
就一个类而言,应该仅有一个引起它变化的原因[单一职责原则(SRP)]
职责过多的缺点
- 如果类里塞进了很多东西,无论任何需求,都要改定同一个类,复用不可能,也缺乏灵活性
- 如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力.这种耦合会导致脆弱的设计,当变化发生时,设计会遭受到意想不到的破坏
单一职责原则要点
- 软件设计真正要做的许多内容,就是发现职责并把职责相互分离
- 如果你能够想到多于一个的动机去改变一个类,那么这个类就具有多于一个的职责,如果这个类多于一个职责,就有必要分离
手机职责过多吗?
- 其实手机这个例子和类相比关系并不大,手机职责多,其实不等于它不可以做好,只不过现在科技还没实现
- 在编程的角度,做到单一职责,这样你的代码才是真正的易维护,易扩展,易复用,灵活多样