我構建了一個相對較大的面向對象程序。我有一個名爲AerodynamicCalculator
的課程,它執行許多計算並將結果分發給系統。我主要擔心的是我的構造函數簽名越來越大,因爲我添加了mor參數。通過構造函數傳遞的對象引用
如下圖所示,我已經有9個對象引用被傳遞給這個構造函數,但是我需要另外7個對象引用。我正確地創建這個對象嗎?我的理解是,您將關聯的對象引用傳遞給構造函數,並將類的局部變量分配給對象引用。如果是這種情況,讓所有需要的對象正確初始化我的類的唯一方法是將它們傳遞給構造函數,這會導致很長的簽名。
public AreodynamicCalculator(AircraftConfiguration config, AileronOne aOne,
AileronTwo aTwo, ElevatorOne eOne, ElevatorTwo eTwo, Rudder r,
Rudder rr, RateGyros rG) {
// ...
}
對此方法的任何建議將非常有幫助,在此先感謝。
將提出各種策略,並可能是您去的最佳方式;但這可能表明你的班級正試圖做太多的事情,需要分解成更小的部分。 – 2012-04-19 15:38:51
這不是禁止的。這是做到這一點的一種方式。還有其他方法可以做到這一點,但最終都會歸結爲系統的特定體系結構,它會「告訴」您創建系統的最佳方式。這個問題可能會因爲範圍過寬而關閉。 – Th0rndike 2012-04-19 15:40:26
該類實際上只計算5個變量,但必須將這些變量分配給7個對象。如何從計算中使用的變量中提取出我在原始文章中顯示的對象。所以類dosnt做了這麼多,但它作爲一個吸氣劑,系統計算器和計算結果分配器。 – 2012-04-19 15:44:44