2014-02-10 22 views
1

我讀可以通過「未通過不必要參數」是否傳遞一個聚合對象,而不是對象的長參數列表的減少數據耦合

說有一個makeCake方法,該方法需要在許多實例變量被降低的數據耦合在Ingredients類作爲參數:

makeCake(ingredients.flour, ingredients.egg, ingredients.sugar, ingredients.cheese, ingredients.cream) 

而不是這個,只是通過整個配料對象

makeCake(ingredients) 

makeCake方法內訪問的變量..


是此計數爲減少它調用makeCake方法和配料類的類之間的耦合?在你傳遞5個參數之前,現在你只傳遞一個參數?

(請注意,這個問題是用Java語言做 - 和Scala的OO側 - 記)

(抱歉,如果這個問題是讓你渴望的蛋糕,這是彈出到的第一件事情我頭):)

+1

在你的第一個例子中,你實際上是通過成分的屬性(麪粉,雞蛋等)的值。因此,makeCake和配料之間沒有耦合。在你的第二個例子中,你自己傳遞配料。在這裏你可以找到makeCake和配料之間的聯繫。 – wolfrevo

+0

我明白了..我對整個耦合概念很陌生,可能是錯誤的。我認爲耦合是在類/對象之間?所以耦合將在**類與makeCake方法和成分類之間? – SonicProtein

+0

我認爲wolfrevo的評論實際上正確答案 – Leo

回答

1

看到http://depfind.sourceforge.net/Manual.html#Dependencies

...的依賴是當一種元素的功能要求 存在另一個元素B的,我們說A 在B依賴和我們寫 它:

A --> B 

我們說有一個出境依賴而B有一個入境 依賴。它是相同的依賴關係,但它是入站還是出站是相對於你的看法。我們還說A是 ,依賴於,B是可靠

依賴關係圖包括使用兩種類型的關係鏈接在一起的軟件僞像的節點。

工件是包,類和功能。我們使用術語功能 來指定類屬性,構造函數和方法;我們將 從這裏對待他們一樣。爲了分析 依賴的目的,我們不不同類型的 功能區分,無論是構造或常規方法,以及 無論要素的特徵,如被標記爲 最終還是靜態的。

第一類型的關係是組合物。包有類, 其本身具有功能。我們把這種「擁有」 關係組成。通過合成將特徵節點鏈接到其類節點 。類節點也通過組合鏈接到其包節點 。

第二類型的關係是依賴性。類別是指每個 其他,功能是相互引用的,而功能是指類別。我們 稱這種關係依賴關係。每個節點都使用依賴關係鏈接到各種其他各種類型的節點。

0

我覺得沒有那麼多。

我認爲格式的改變不是想法。

相反,如果您傳遞了「成分ID」並讓目標查找需要的東西....那麼耦合度就會降低。

+1

雖然經過整個對象將完成類似的目標......我可能會改變我的心:) –

+0

不是真的,所有THST確實是添加上查找供應商又依賴。 –

相關問題