1. 什么是單一職責原則
顧名思義就是一個職責嘛宙拉,完整的來說浅萧,就是一個接口乞旦、類和方法負責的功能是單一的,簡單的页畦。
2. 生活中的運用
其實,咱們生活中研儒,有很多這樣的例子豫缨,就拿手機廠商造手機來說,為了完成一部手機的制造端朵,需要有生產(chǎn)cpu的好芭、生產(chǎn)顯示屏的、生產(chǎn)主板的冲呢、生產(chǎn)外殼的舍败、生產(chǎn)麥克風的...各種的機器。那么每一種類型的機器就會生產(chǎn)這一類產(chǎn)品,不會生產(chǎn)其他的產(chǎn)品邻薯,這種進行單一產(chǎn)品生產(chǎn)的功能裙戏,就是單一職責的具體表現(xiàn)。
3. 這種原則的優(yōu)點
那么為什么要這么做呢厕诡?當然不是吃飽了撐的累榜,下面就來看看這樣做有什么好處。
- 降低類的復雜性灵嫌,有什么樣的職責都是清晰明確的壹罚。
- 可讀性提高,復雜性降低醒第,可維護性提高渔嚷。
- 應對將來變更的風險能力提高。
咱們就來反面來驗證這3個優(yōu)點稠曼,假如制造手機是一個牛掰的機器形病,這邊把原料放進去,另外一邊手機就出來了霞幅,那么這臺機器就包含了很多的功能漠吻,生產(chǎn)cpu,生產(chǎn)顯示器等等司恳,全一機器干了途乃,可想而知這臺機器里面將是多么的復雜,假如這臺機器生產(chǎn)外殼的功能壞掉了扔傅,那么這個龐大的機器將不能繼續(xù)生產(chǎn)手機了耍共,只能等待維修人員了,如果按照單一職責的機器來進行生產(chǎn)猎塞,那么我只要將生產(chǎn)外殼的機器換掉试读,就可以繼續(xù)生產(chǎn)手機,這樣應對風險的能力將大大提高荠耽,另外就拿后期的維修機器來說钩骇,單一職責的機器維修的效率也是很高的。
4. 菜鳥時代的Activity
當年寫Activity的時候铝量,會把對View的操作倘屹,對數(shù)據(jù)的處理,以及和其他Activity的交互邏輯全都寫到一個Activity里面慢叨,到最后這個Activity一共1000行代碼纽匙,當然也有比這還多的,于是吭哧吭哧把這樣的功能完成了插爹,這個時候產(chǎn)品經(jīng)理說:“小王哄辣,這個功能目前有點變動请梢,換成XXX這樣的×λ耄”毅弧,估計,你當時掐死產(chǎn)品經(jīng)理的心都有当窗,算了够坐,為了珍惜生命,也是就忍了崖面,就開始默默的修改龐大的Activity元咙,以及與之相關的類,等你改好了巫员,發(fā)給測試庶香,測試人員說:
沒辦法誰叫他是產(chǎn)品經(jīng)理的呢,就需要改動很多的代碼简识,一旦發(fā)生了bug赶掖,還需要從前往后的排查,兼職讓人苦不堪言七扰,那么在看看現(xiàn)在的MVP這個結構奢赂,不就這種單一職責的原理嘛,各自負責各自的颈走,雖然類的數(shù)量增加了膳灶,但是結構條理清楚,面對將來業(yè)務的修改也是很方便立由,找bug也不費事了轧钓,最重要的是團隊的分工合作。
5. 思考
理論是枯燥的锐膜,但是將理論和生活結合在一起聋迎,將大大提高對理論的理解。