面向对象设计原则--单一职责原则(SRP)

上在宿舍把WEBCAST翻出来,听了李建忠讲的关于面向对象设计的几天基本设计原则的课,半懂非懂听了下来,听完之后除了茫然还是茫然!也好,只有这样才能知道自己所知甚浅,所学甚糙!革命远未成功,吾须戒骄戒躁!
  (PS:个人觉得李建忠讲课水平一般,可能他是一个非常好的程式员,但不是一个好的讲课员,大概程式员都有这个通病,写个程序哪怕再复杂的程序都能应付自如,但让他讲课甚至是讲几句话,总让人感觉词不搭意,听过李建忠讲课的,肯定都会有这种感觉:断断续续,常为了表达一个词卡那半天,最后搜肠刮肚找出来的词仍然是词不搭意,但好在都是讲给程序员听的,大家基本都能明白他所要表达的意思)

原则一:单一职责原则(SRP)
   --- 一个类应该仅有一个引起它变化的原因(最简单,最容易理解却最不容易做到的一个设计原则)
  我想,所谓职责就是一个类所完成的主要任务和功能,单一职责应就是讲这个类只有一个目的和任务!
  也有很多人认为职责就是"变化的原因"或者是"变化的动机",如果一个类有多于一个动机会要求改变这个类,那么这个类就不是单一职责,就是多职责了!
  这个和上面说职责就是类所需要完成的任务和功能,从本质上讲不矛盾的,从最终效果来将,类的主要任务和功能也是类需要变化的根本原因,因此从这点来讲,这2种看法是统一的!
  李建忠在他的课里讲了2个例子来论证SRP,一个就是职员类,一个是Framework类库里的文件类!
  
职员类例子:
  比如在职员类里,将工程师、销售人员、销售经理这些情况都放在职员类里考虑,其结果将会非常混乱,在这个假设下,职员类里的每个方法都要if else判断是哪种情况,从类结构上来说将会十分臃肿,并且上述三种的职员类型,不论哪一种发生需求变化,都会改变职员类!这个是大家所不愿意看到的!


将那些容易导致变化的职责分离,而不必将每一个职责都分离!
如果有一个原因导致类中其中一个职责发生变化,就应该将这个职责分离!
如果是导致类中所有职责都发生变化,则可以不分离!

SRP原则是所有设计原则中最基本的原则,坚持这个原则能够给我们带来的好处如下:
1.代码的可复用性
2.函数变短,可读性增强
3.不存在重复代码,结构精炼
4.函数功能单一,容易被替换
  
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdMe.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdMe.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看READme.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值