前言
经常会听见这么一句话:底层逻辑决定上限,这不最近又在重新筑基,今天向大家汇报一下最近的一个学习成果:SRP-单一职责原则。如果只看名字很容易理解错误这个原则代表的意义,我第一次看到的时候想当然的认为:单一职责代表的意思就是:每个类或者每个方法都只能完成一项工作。但是认真学习之后才发现自己想的是多么的狭隘。
一、再看SRP
我们首先看一下《架构整洁之道》书中对SRP的定义:任何一个软件模块都应该只对某一类行为者负责。
我的理解是在这个概念中主要有两个比较重要的组成部分:软件模块和一类行为。
- 软件模块:软件模块虽然包含模块这两个字,其实是一个泛指,一个源文件也其组成的一部分
- 一类行为:一类行为并不仅仅指仅实现一个功能,不和其他的功能耦合,他也指某一领域模型的一类行为。
从概念上看还是感觉很模糊,理解的还不是十分的深刻,那么我们举一个例子。
现在有一个Child类,有二个方法:studing、playing。studing方法是由文化课老师制定,并统计学习时间和并对实际的学习效果进行统计,playing方法是由体育老师制定,并统计运动时间及在不同时间下的孩子们的体质情况。
现在是把studing和playing方法放在了一个方法中去,但是这样可能会导致体育老师和文化课老师制定的计划相互影响。例如:孩子们在学习和参加体育锻炼的时候肯定不可能一直全情投入,刚开始的都用相同的比率去统计,为了避免重复代码,就会用相同的代码来实现。
但是接下来体育老师需要修改这个比率,运用更加科学的统计方法来进行统计,文化课老师没有修改这样就会导致一些问题。
二、后话
设计模式和设计原则的学习,需要温故而知新,经过一段时间的实践之后再回过头来学习和思考,总会有新的感悟和提高。希望咱们乘风破浪,更上一层楼
三、结语
道阻且长,行则将至,行而不辍,未来可期,加油。
原创不易,如果你觉得文章不错,对你的进步有那么一点帮助,那么就给个小心心,如果觉得文章非常对你的胃口,那么欢迎你关注我,或者关注个人的微信公众号 程序猿每日分享,这里有资源,有内推,有和你志同道合的朋友,咱们一起打怪升级。