什么是依賴,什么是抽象
作者:網(wǎng)絡轉(zhuǎn)載 發(fā)布時間:[ 2011/10/8 11:20:40 ] 推薦標簽:
● 繼承
● 聚合
● 接口
● 方法調(diào)用和引用
● 服務調(diào)用
了解了耦合發(fā)生的一般方式,可以進入核心思想的討論,那是在認識和了解依賴的基礎上,終追求的目標。
話說設計的目標:高內(nèi)聚(High cohesion)、低耦合(Low coupling)。
討論了半天,終于是時候?qū)σ蕾嚭婉詈线M行一點兒總結(jié)了,也是該進行一點目標訴求了。在軟件設計領域,有那么幾個至高原則值得每個開發(fā)者銘記于心,它們是:
● 面向抽象編程
● 低耦合,高內(nèi)聚
● 封裝變化
● 實現(xiàn)重用:代碼重用、算法重用
對了,是這些平凡的字眼,匯集了面向?qū)ο笏枷氲暮诵膬?nèi)容,也是本文力求闡釋的禪意心經(jīng)。關于面向抽象編程和封裝變化,會在后面詳細闡釋,在此我們需要將注意力關注于“低耦合,高內(nèi)聚”這一目標。
低耦合,代表了實現(xiàn)簡單的依賴關系,盡可能地減少類與類、模塊與模塊、層次與層次、系統(tǒng)與系統(tǒng)之間的聯(lián)系。低耦合,體現(xiàn)了人類追求簡單操作的理想狀態(tài),按照軟件開發(fā)的基本實現(xiàn)技巧來追求軟件實體之間的關系簡單化,正是大部分設計模式力圖追求的目標;低耦合,降低了一個類或一個模塊發(fā)生修改對其他類或模塊造成的影響,將影響范圍簡單化。在本文闡釋的依賴關系方式中,實現(xiàn)單向的依賴,實現(xiàn)抽象的耦合,都是實現(xiàn)低耦合的基礎條件。
高內(nèi)聚,一方面代表了職責的統(tǒng)一管理,一方面體現(xiàn)了關系的有效隔離。例如單一職責原則其實歸根結(jié)底是對功能性的一種指導性體現(xiàn),將功能緊密聯(lián)系的職責封裝為一個類(或模塊),而判斷的準則正是基于引起類變化的原因。所以,封裝離不開依賴,而抽象離不開變化,二者的概念和本質(zhì)都是相對而言的。因此,高內(nèi)聚的目標體現(xiàn)了以隔離為目標進行統(tǒng)一管理的思想。
那么,為了達到低耦合、高內(nèi)聚的目標,通常意義上的設計原則和設計模式其實都是朝著這個方向?qū)崿F(xiàn)的,因此僅僅總結(jié)并非普遍意義的規(guī)則:
● 盡可能實現(xiàn)單項依賴。
● 不需要進行數(shù)據(jù)交換的雙方,不要實現(xiàn)多此一舉的關聯(lián),人們將此形象稱為“不要向陌生人說話(Don‘t talk to strangers)”。
● 保持內(nèi)部的封裝性,關聯(lián)的雙方不要深入實現(xiàn)細節(jié)進行通信,這是保證高內(nèi)聚的必需條件。
相關推薦

最新發(fā)布
性能測試之測試環(huán)境搭建的方法
2020/7/21 15:39:32軟件測試是從什么時候開始被企業(yè)所重視的呢?
2020/7/17 9:09:11Android自動化測試框架有哪些?有什么用途?
2020/7/17 9:03:50什么樣的項目適合做自動化?自動化測試人員應具備怎樣的能力?
2020/7/17 8:57:06幾大市面主流性能測試工具測評
2020/7/17 8:52:11RPA機器人能夠快速響應企業(yè)需求,是怎么做到的?
2020/7/17 8:48:05Bug可以真正消滅嗎?為什么?
2020/7/17 8:43:03軟件測試基本概念是怎么來的?軟件測試生命周期的形成歷經(jīng)了什么?
2020/7/16 9:11:10