单一职责原理讲解
現(xiàn)在我們來看一下單一職責(zé)原則,我們先來看一下定義,不要存在多于一個(gè)導(dǎo)致類變更的原因,那這句話怎么理解,假設(shè)我們有一個(gè)類,負(fù)責(zé)兩個(gè)職責(zé),職責(zé)一和職責(zé)二,一旦我們的需求變更,比如說職責(zé)一相關(guān)的功能,需要發(fā)生改變,那我們在修改class類的時(shí)候,有可能原本變成正常的職責(zé)二發(fā)生故障,那這個(gè)就是我們在構(gòu)造Class的時(shí)候,沒有遵循單一職責(zé)原則,那再回到這個(gè)定義來說,也就是對于這個(gè)Class,職責(zé)一和職責(zé)二這兩個(gè)職責(zé),需求發(fā)生改變的時(shí)候,都會(huì)影響這個(gè)class,那就是說這個(gè)class他存在兩個(gè)職責(zé),這兩個(gè)職責(zé)都有可能發(fā)生變更,他存在兩個(gè)改變類的原因,那這個(gè)定義就很好理解了,那解決方案就是遵循單一職責(zé)原則,對于這兩個(gè)職責(zé),分別建立class1和class2,分別負(fù)責(zé)職責(zé)一和職責(zé)二,那這樣我們即使在修改職責(zé)一的時(shí)候,對于負(fù)責(zé)職責(zé)二的class2,也不會(huì)發(fā)生變更,也不會(huì)是他發(fā)生故障,這樣也就減輕了負(fù)責(zé)職責(zé)二的class2發(fā)生故障的風(fēng)險(xiǎn),同理修改class2的時(shí)候,也不會(huì)使class1發(fā)生故障,那單一職責(zé)原則,體現(xiàn)在哪幾個(gè)方面呢,我們來看一下,首先一個(gè)類,一個(gè)接口,一個(gè)方法,體現(xiàn)在這個(gè)三個(gè)方面,那對于這句話,就是定義的一個(gè)擴(kuò)展,一個(gè)類,一個(gè)接口,或者一個(gè)方法,只負(fù)責(zé)一項(xiàng)職責(zé),對于他的優(yōu)點(diǎn),我們來看一下,降低類的復(fù)雜度,提高類的可讀性,提高系統(tǒng)的可維護(hù)性,降低變更引起的風(fēng)險(xiǎn),那我們一句一句來解讀,首先減低類的復(fù)雜度,一個(gè)類只負(fù)責(zé)一項(xiàng)職責(zé),對于的邏輯肯定要比負(fù)責(zé)多個(gè)職責(zé)簡單的多,提高類的可讀性,那這個(gè)類比較簡單,他也就更可讀一些,同時(shí)也提高了系統(tǒng)的可維護(hù)性,對于降低變更引起的風(fēng)險(xiǎn),怎么看呢,首先變更是必然的,我們要接受變更,如果單一職責(zé)原則遵循的好,當(dāng)修改一個(gè)功能時(shí),可以顯著降低對其他功能的影響,那這里面需要說明的一點(diǎn)是,單一職責(zé)原則不僅僅是面向?qū)ο缶幊趟赜械?只要是模塊化的程序設(shè)計(jì),都適用于單一職責(zé)原則,那接下來我們就一起來coding,在coding的過程中我們一起來體會(huì)單一職責(zé)原則
?
總結(jié)
- 上一篇: 开闭原则coding
- 下一篇: 单一职责原理讲解coding