高内聚、低耦合的理解
1、高內聚:將功能相關的部分盡量整合在一塊,使其聚合。
2、低耦合:將功能不相關的模塊盡量分開,降低之間的依賴。
? ? ? ? 低耦合的一個法則就是迪米特法則又叫最少知道原則,其內容為一個類對自己所依賴的類知道的越少越好。
? ? ? ? 栗子:我所依賴的類可能有1000個功能,但是我實際只用其3個功能,按照其原則,按照低耦合的宗旨,我對這個所依賴的類知道的越少,我倆的耦合性不就越低了么。所以,根據我和我所依賴的類之間邏輯關系,將該關系封裝成接口,我只需要調用我所依賴的類的接口即可,這樣就達到了低耦合的目的,這也是該原則的精髓所在。
? ? ? ? 關于低耦合,下面是我見到的最通俗易懂的栗子,和大家分享一下:
? ? ? ? 公司里面的董事長只會和總經理打交道,董事長的下層接口是總經理,總經理手底下3個副總經理,那么,總經理就和3個副總經理打交道。3個副總每一個人管理一個業務部門,副總經理只和部門經理打交道,部門經理手底下有自己部門的員工,但是部門經理只和團隊的隊長打交道,團隊隊長和所有團員打交道。這樣一個非常分明的層次關系,不會讓董事長來交叉管理團員,也不會讓總經理來管部門經理。
? ? ? ? 如果交叉在一起,就是強耦合
? ? ? ?解耦的思想是讓每一個角色,只依賴他的下層接口,讓各個角色盡量保持獨立,他們之間完全隔離,這個思想叫做去除耦合
這是分層思想,和mvc有區別。
? ? ? ? 低耦合有什么好處呢?萬一有1個副總經理辭職了,那么他影響的范圍非常小,他只會影響到總經理和部門經理這兩個上下接口層次,而對于董事長和團員之間是透明的,根本感覺不到有一個人辭職了,因為董事長的下層接口是總經理,他根本就看不見副總經理。
? ? ? ? 總的來說,做軟件設計最終的目的是讓軟件開發更輕松、更靈活(功能可減可增)、更好理解(脈絡清晰、快速定位bug)。
?
參考鏈接:https://blog.csdn.net/jia970426/article/details/79734490
?
(SAW:Game Over!)
總結
以上是生活随笔為你收集整理的高内聚、低耦合的理解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 堆栈的生长方向和空栈满栈的区别
- 下一篇: HEX、DEC、OCT和BIN的解释