2012-02-07 32 views
6

在我的工作中(這是90%的Java,但我確定這個問題適用於其他語言),我經常創建兩個「相互瞭解」的類。更具體地說,A類輸入B,B類輸入A類,並且都具有其他類型的成員變量或局部變量。循環依賴被認爲是不好的設計?

這是否被認爲是不好的設計?一個反模式,如果你願意?

+1

dupe [從編碼風格的角度來看圓形類的依賴性不好嗎?](http://stackoverflow.com/questions/1356304) – 2012-02-07 09:55:46

+1

http://stackoverflow.com/questions/1897537/why-are -ircular-dependencies-認爲有害 – Pup 2012-07-22 01:54:46

+0

該問題是關於循環引用,引用對方而不是類依賴的對象 – 2013-05-27 11:35:57

回答

4

這是我的看法:

  • 如果兩個類都屬於同一個邏輯模塊,那麼它可能罰款(當然還是一個主觀判斷,有很多灰色區域)。
  • 如果兩個類屬於不同的模塊,那就不那麼好了。這會在模塊之間創建一個循環依賴關係。我儘量避免這種情況,寧願有明確的分層結構。
1

是的,它的設計很糟糕,它與oop原理相矛盾,看來你必須創建一個新的類或接口將包含a和b的共享參數和函數,a和b會導入這個新類。 ..

+0

並非總是如此。 – Pup 2012-07-22 01:55:30