物件導向之 單一原則

2022-08-27 02:36:11 字數 1376 閱讀 4987

單一原則就是只負責乙個功能領域中的相應職責,你就幹好自己的事,不能把別人的事也幹了,比如說孫悟空會七十二變,如來會鎮壓孫悟空,不能孫悟空會鎮壓孫悟空,咋這自己把自己鎮壓的?這樣會讓別人覺得很奇怪,我以前在網上看過這樣一篇文章,吐槽他接收的專案,專案中有乙個「巨大」的類,萬能方法集合類,就是把專案中用到的所有函式集合到乙個類裡面,哈哈!然後每次繼續往下寫的時候,就不知道自己將要寫的方法函式,他上一位同事 是否實現過,有同學可能說,繼續接著他的萬能類往下寫,沒問題可以繼續寫,那樣會造成大量的**冗餘和重複的工作量,甚至自己寫的功能方法自己都找不到了,還有專案不迭代了是不,誰寫誰難受,然後他就重構了他的萬能方法類,進行抽象分類,經過不懈的努力,終於進行了**重構。。一千多個方法怎麼分。。。所以進行指責分類  利人利己

下面**示例:

class person

eat()

}class aircraft

fly()

}new person("小明").eat() //

小明正在吃飯

new aircraft("飛機").fly() //

飛機正在起飛

如果我想讓某個人執行吃飯的事件,我就會想到person類下的eat方法能夠實現我現在的需求,只要是涉及到人的行為,首先想到person類而不會想到aircraft類,這樣能夠讓我們進行快速的**實現, 這也是對指責能力的乙個劃分,讓閱讀者和自己能夠快速找到詳情的事件或功能。

耦合是指一種互相影響的關係,比如說a方法和b方法之間互相有關聯,改變a ,b也會跟著改變,低耦合就是說儘量減少他們兩個之間的關聯

單一原則 最難的就是對職責的劃分,讓**低耦合,有時候需要把乙個職責,拆分成多個指責,來提高復用率,這時候就很容易發生耦合關係,我在網上看到一篇講單一原則的文章,在這裡和大家分享一下:

better mousetrap的工廠建造在sidtown,而該工廠的員工都居住在fredborough,所以每天早上大批員工從fredborough出發前往sidtown,並在傍晚返回;類似的,zokko soda公司的運輸車在每天的工作時間都需要在製瓶工廠和灌裝工廠穿梭來往,

很明顯,如果better mousetrap的工廠和員工居住地都在同一城市,而zokko soda的兩座工廠都建造在另一座城市,那麼城市之間的交通狀況將會明顯改善。

他們兩個互通的橋梁不再擁堵:體現出了低耦合。

自己內部就能完成需要的行為,不再依賴其他:體現了高內聚。

最後總結一下,單一原則是指 實現指責分類、模組與模組之間減少聯絡、模組自己就能完成需求

物件導向設計原則之單一職責原則

單一職責原則是最簡單的物件導向設計原則,它用於控制類的粒度大小。單一職責原則定義如下 單一職責原則 single responsibility principle,srp 乙個類只負責乙個功能領域中的相應職責,或者可以定義為 就乙個類而言,應該只有乙個引起它變化的原因。單一職責原則告訴我們 乙個類不...

物件導向設計原則之單一職責原則

單一職責原則是最簡單的物件導向設計原則,它用於控制類的粒度大小。單一職責原則定義如下 單一職責原則 single responsibility principle,srp 乙個類只負責乙個功能領域中的相應職責,或者可以定義為 就乙個類而言,應該只有乙個引起它變化的原因。單一職責原則告訴我們 乙個類不...

物件導向設計原則之單一職責原則

單一職責原則是最簡單的物件導向設計原則,它用於控制類的粒度大小。單一職責原則定義如下 單一職責原則 single responsibility principle,srp 乙個類只負責乙個功能領域中的相應職責,或者可以定義為 就乙個類而言,應該只有乙個引起它變化的原因。單一職責原則告訴我們 乙個類不...