大白话设计模式-单一职责原则

79 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第4天,点击查看活动详情

背景:由于上面菜鸟使用了策略模式修改了源代码,让老板很是开心。月末的时候还表扬了他,并发给他一张水果手机满5000-100的优惠券,菜鸟一狠心,有优惠券就要用掉!下单了一个最新款的水果旗舰手机。

新手机

自从菜鸟下单了新的手机之后,就心心念念看着物流信息,等着新手机的到来,甚至说每个小时都要再查看一下。

在三天之后,终于新手机拿到手了,菜鸟可是爱不释手,逢人就炫耀。那心想,必须和大佬说一下啊。

  • 菜鸟 : 大佬你看,这是我新买的最新水果手机,还是旗舰级的呢?
  • 大佬 : 不错不错,看起来质感很高级啊。
  • 菜鸟 : 是啊,听音乐,玩游戏、拍照片、摄像都不错。
  • 大佬 : 现在手机有这么多功能啊,我就要求能打电话行了。

拍照片

临时路上有个美女突然经过,和菜鸟搭话

  • 美女 : 你好呀小哥哥,我第一次来到这里,能给我和我的男朋友拍个合照吗?
  • 菜鸟 : (你都有男朋友还找我!)啊,没问题!

美女将他男朋友的手机拿给了菜鸟,和菜鸟的新手机是同款,"茄子",一张合照就拍好了。但是当时天色已经黑了好多。拍出来菜鸟一看,黑乎乎的一坨,根本就看不清人脸。

美女向着他男朋友发脾气:早知道让你带相机出来了,你看,黑乎乎的一坨,后期怎么修呢?

男朋友傻乎乎的笑着。呵呵呵

单一职责原则

  • 大佬 : 这我就可以和你讲一下单一职责原则了
  • 菜鸟 : 听这个字面意思,单一职责就是功能要单一吗?
  • 大佬 : 可以这样子简单的理解,准确的说,就一个类而言,应该仅有一个引起他变化的原因
  • 大佬 : 我们在开发的过程中,自然而然的就会把各种各样的代码,如业务需求,数据库操作等等都写在同一个类中,但当你需要更改代码,增加或者维护的时候,就非常麻烦,复用性也是非常差的,更加缺乏灵活性!
  • 大佬 : 就像现实的例子,刚刚那个男朋友,如果用的是相机拍照,那后期还可以通过宽容度,拉曝光等等操作原生Raw格式,有很大的空间可以修。
  • 菜鸟 : 我懂啦!

单一职责原则(SRP):就一个类而言,应该仅有一个引起他变化的原因