2013-08-31 76 views
0

我正在研究java中的類項目,並具有以下設計規範。課程項目的Java程序設計

我有一個科學家類和一個ABCFundingApplication類(ABC是一個授予科學家資助他們研究的機構)。科學傢俱有某些屬性,如他的用戶名,密碼,發表論文數量,過去採購的資金等等。

ABCFundingApplication類包含一個科學家類型科學家數組,其中包含科學家對象。 ABCFundingApplication允許科學家對象的「創造」,也可以更新現有科學家對象的概況。

現在它說ABC部門通過在公司內部使用一些內部流程來計算科學家是否獲得資金(在此插入資金籌措算法)。

規格表說我們要將這個funding_decision算法包含在科學家類的一個方法中,我的問題是爲什麼我們不能將它作爲ABCFundingApplication類的一部分包含進去,而只是檢查科學家中的某個科學家對象陣列,他/她是否會獲得資助?在我看來,這將是一個更清潔的實施嗎?

+1

那麼你的規格表似乎缺少一個重要的部分,這是項目或研究,給定的科學家將被授予資助。如果我們想要準確地模擬問題,這與科學家的概況一樣重要。決策算法將以科學家的概況和項目爲依據。你是對的,在科學家簡介課上實施它是沒有意義的。 – ylabidi

+0

將科學家傳遞給ABCApplication中的方法會更清潔,但也許他們要麼計劃在需要資助算法的其他應用程序中使用此科學家類,要麼計劃讓科學家班的未來子女覆蓋並擁有自定義算法。請記住,如果這是一所高中班級,某些課程使用特定規範來強化某些目標,即使它們不合邏輯,僅僅是因爲課程要求所要求的。 – snickers10m

+0

雅我認爲這可能會加強我們在最近幾周在課堂上討論過的某些特定概念。謝謝。 – user2502020

回答

1

以某種方式,我可以理解爲什麼規格表中說爲了將funding_decision包括在科學家類中。這就像在「Dice」對象上放置「Throw」方法。另外,因爲ABCFundingApplication不僅僅是一個授權資金的機構,它還會創建並更新它們。 但我更喜歡把方法放在ABCFunding這個類中,這個類將代表屍體,但不會創建或更新科學家。 它會擴大界面資金,所以如果有類別DEFFunding,您可以覆蓋每個資助機構的determineFunding方法。