2012-05-31 51 views
1

我希望設計一個類來對某些對象使用輔助方法。通常最好的方法是做什麼。所有的功能將作用於這兩個對象。輔助類的設計方法

SomeObj someObj; 
AnotherObj anotherObj; 

public SomeClass(SomeObj someObj,AnotherObj anotherObj){ 
this.someObj=someObj; 
this.anotherObj=anotherObj; 
} 

somefunction(){ 
//act on the instance vars 
} 

,或者我應該有沒有實例簡單的類瓦爾(無國籍),並函數接受必需的變量

public SomeClass(){ 

} 

somefunction(SomeObj someObj,AnotherObj anotherObj){ 
//act on the local vars 
} 

哪種方法,在設計方面被認爲是好的。

+0

家庭很多功能(somefunction)你有輔助類嗎? – dbf

回答

1

如果唯一會影響SomeObjAnotherObj對象的方法是someFunction(),那麼它們可能不需要存儲爲實例變量。如果它們將被用於/需要從someFunction()和其他內部方法修改SomeClass的狀態,那麼我會說它們確實應該被存儲。

你可以考慮關於SomeClass類實現了幾個備選方案:

  • 如果它不會有任何狀態,那麼方法或許應該是靜態
  • 根據多麼複雜的操作是多少幫手你可以使用的方法,你可以使用Visitor design pattern
0

我想說這取決於如何使用「helper」方法,以及調用類如何與SomeObj和AnotherObj進行交互。通過創建SomeClass的實例,對SomeObj和AnotherObj的內部引用,可以將調用類從這些類中分離出來,這可能是件好事。另一方面,如果調用類已經引用了someObj和另一個對象,我認爲沒有必要創建一個額外的對象,而是使用靜態輔助方法。