2011-06-06 104 views
0

一個對象何時依賴於另一個對象?java中對象的依賴關係

如果A類創建或使用對象B,那麼A依賴於B - 它需要它來處理,以履行可能的一些任務。

但是B也依賴於A,它創建或使用它。

那麼java的循環依賴嗎?

+0

這要看什麼情況下你用的是「依賴」 - 這聽起來像你有一個具體的,技術背景,但在我看來,沒有一個明確的定義。 – 2011-06-06 09:37:32

+0

嗯,我的意思是「依賴」,如:兩個類之間的關係。也許這是兩回事。一個是:「A類不能完成它的任務,它不需要對象B,它需要它,它確實'依賴於它」。另一個是:「對象B被A類使用,所以它們之間存在'不可分割的'關係」。也許第二個詞有另一個詞? – nano7 2011-06-06 09:42:28

回答

3

你的定義是圓形但是Java的引用只能走一條路。

相關性僅從需要提供該需求的對象的對象中去除。你可以有循環依賴。你不能談論對象需要的東西。我認爲這隻適用於人(也可能是寵物)。 ;)

+0

我可能會餵我的狗,但我需要撫摸他。從我+1。 – duffymo 2011-06-06 09:41:39

+0

我在考慮需要類別的狗。那是因爲我們相信他們有複雜的情緒。 ;) – 2011-06-06 09:43:28

+0

「你不能說需要爲對象需要」哈哈,聽起來正確:-)你是否在我自己的帖子中看過我的評論?也許我對「依賴」的描述是錯誤的。當然,對象B並不需要被需要,因此通常不依賴於其他類。但是當它被另一個班使用時,它們之間有某種關係,對吧?也許不是「依賴」 - 但是當對象B被類A使用時,它實際上與類A綁定在一起。我認爲這就像一個依賴關係。 – nano7 2011-06-06 09:47:08

0

如果A依賴於B是和B依賴於A,則其循環依賴

0

依賴關係圖有一個圓圈。 依賴關係本身是單向的。

1

循環的依賴關係是可能的,但是當你有引用它們只發生在這兩個對象:

public class A 
{ 
    private List<B> children; 
} 

public class B 
{ 
    private A parent; 
}