2013-10-07 106 views
0

假設我有一個抽象類Menu和三個小類MexicanMenu,FinnishMenu,JapaneseMenu靜態ArrayList有多昂貴?

更昂貴的是爲每種菜單一個靜態的ArrayList<String> menu還是一個非靜態的?

使用靜態菜單反對使用「實例」方法有什麼優缺點? OO設計說,我認爲兩者都符合此目的。

+1

'static'不是OO,因爲它生活之外的對象。 – zapl

+0

感謝您的反饋@zapl然而沒有類我不會看到任何可能的對象..所以.. –

+0

靜態使用更少的內存(如果您有多個類類型的對象),因爲每個類只有一個。 – Dukeling

回答

2

較貴具有各種菜單的靜態

的也就是方法重載的基本需要。我不知道你爲什麼要去static

只要你不關心線程安全性,沒有副作用/昂貴的內存泄漏。

我建議你將它們綁定到instances

+0

是的,你對壓倒一切是正確的,這是一個壞榜樣。我想知道多少昂貴被認爲是一個靜態數組列表 –

+0

@IndeedItIs忘記昂貴,這與內存幾乎可以忽略不計。如果你的設計要求只是去爲它。 –

0

您可以在抽象類中聲明非靜態列表並將其繼承到所有的子類。 如果你想爲每個子類單獨拷貝,那麼使用非靜態列表,否則使用靜態列表。

0

Java是開源的,免費的,所以它是不是在所有EXPENSIVE:P