2009-11-25 87 views

回答

1

他們是不同的東西,但顯然他們是相關的。例如,如果您有兩個(據稱;-)組件A和B,但A取決於B B取決於A,那麼它們並不是真正獨特的組件 - 它們是明顯存在的奇怪分割一個組件。爲了實現真正的模塊化,必須牢記依賴關係 - 而Dependency Inversion是實現乾淨,正確依賴的關鍵技術之一。我也強烈建議this classic book - 如果您選擇的語言是C++,則最具相關性,但它確實包含了許多適用於許多其他語言的建議。

+0

這意味着可能會聲明「管理依賴性以實現模塊化」是不正確的? – komal

+0

管理依賴關係是模塊化的必要條件,但並不是充分條件。如果你把所有東西都放在一個大塊的內部,那麼不會有interblob依賴(因爲根據定義,blob包含了所有的東西),但是顯然沒有模塊化! –

0

我同意亞歷克斯 - 如果模塊糾結,你真的沒有明確的模塊。而且,外部的模塊間依賴關係難以控制,而不是更可見/本地化的內部結構。事實上,他們經常被忽視。另外,雖然纏結是一種客觀的,可衡量的反模式,但您應該考慮哪些依賴關係規則對您的特定項目和流程有意義。這些更主觀,只能由您定義。

關鍵是,無論您決定什麼限制,開發人員都應該很容易知道他們是否存在以及是否/何時破壞他們,並且如果違規將其納入整合/構建中,則會警告某位前輩。

Structure101支持所有這一切,您可能還想查看LattixSotoArc and SonarJ。 Jdepends是一個開源項目,可以檢測其他事物的週期。但現在開始使用 - 代碼永遠不會得到隨着時間的推移糾纏!

0

假設我有一個龐大的代碼體。它取決於它之外的任何代碼。我想我們不會稱之爲模塊化。

說我有一個清脆,瘦,瘦身體的代碼,另一方面,取決於60代碼外部機構。同樣,我認爲我們也不會稱之爲模塊化。

模塊化,因此,我認爲,更多的是關於我們人類的認知侷限性而非其他任何事情。

所以:

  1. 依賴數應該是可控的。耦合?
  2. 發生依賴關係的位置應該很容易找到。 PIN的分離(Atul Apte的積分點)?
  3. 取決於他人的代碼的大小也應該可以管理。凝聚?