<Java設(shè)計模式>—單一職責原則(SRP)師徒四人去取經(jīng)

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,以及與之相關(guān)的類,等你改好了,發(fā)給測試,測試人員說:

沒辦法誰叫他是產(chǎn)品經(jīng)理的呢,就需要改動很多的代碼,一旦發(fā)生了bug,還需要從前往后的排查,兼職讓人苦不堪言,那么在看看現(xiàn)在的MVP這個結(jié)構(gòu),不就這種單一職責的原理嘛,各自負責各自的,雖然類的數(shù)量增加了,但是結(jié)構(gòu)條理清楚,面對將來業(yè)務的修改也是很方便,找bug也不費事了,最重要的是團隊的分工合作。

5. 思考

理論是枯燥的,但是將理論和生活結(jié)合在一起,將大大提高對理論的理解。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容