什麼事迪米特原則?迪米特原則能協助我們在類設計中起到什麼作用呢?
迪米特原則介紹
1. 定義:每一個軟體單位對其他的單位都只有最少的知識,而且局限於那些與本單位密切相關的軟體單位。
2. 分析
(1)迪米特法則就是指一個軟體實體應當儘可能少的與其他實體發生相互作用。這樣,當一個模組修改時,就會盡量少的影響其他的模組,擴充會相對容易,這是對軟體實體之間通訊的限制,它要求限制軟體實體之間通訊的寬度和深度。
(2) 狹義的迪米特法則:可以降低類之間的耦合,但是會在系統中增加大量的小方法並散落在系統的各個角落,它可以使一個系統的局部設計簡化,因為每一個局部都不會和遠距離的對象有直接的關聯,但是也會造成系統的不同模組之間的通訊效率降低,使得系統的不同模組之間不容易協調。
(3)廣義的迪米特法則:指對對象之間的資訊流量、流向以及資訊的影響的控制,主要是對資訊隱藏的控制。資訊的隱藏可以使各個子系統之間脫耦,從而允許它們獨立地被開發、最佳化、使用和修改,同時可以促進軟體的複用,由於每一個模組都不依賴於其他模組而存在,因此每一個模組都可以獨立地在其他的地方使用。一個系統的規模越大,資訊的隱藏就越重要,而資訊隱藏的重要性也就越明顯。
(4)迪米特法則的主要用途在於控制資訊的過載。
指導思想:
1.在類的劃分上,應當盡量建立松耦合的類,類之間的耦合度越低,就越有利於複用,一個處在松耦合中的類一旦被修改,不會對關聯的類造成太大波及
2.在類的結構設計上,每一個類都應當盡量降低其成員變數和成員函數的存取權限
3.在類的設計上,只要有可能,一個類型應當設計成不變類
4.在對其他類的引用上,一個對象對其他對象的引用應當降到最低。
執行個體
i.某系統介面類(如Form1、Form2等類)與資料訪問類(如DAO1、DAO2等類)之間的調用關係較為複雜。:
圖(一)
圖(二)
圖(一)和圖(二)分析:
圖(一)為什麼到圖(二)哪?因為這樣就可以降低類的耦合性,是類中功能更加單一,相當於面板模式。
一個軟體實體應當儘可能少的與其他實體發生相互作用