2012-02-25 50 views
1

我有一個非常複雜的java類,它有60多個小幫助方法,用於方便閱讀和理解。您想知道,在一個類中使用這些方法會不會以任何方式影響性能?Java - 使用多種方法時的性能考慮

class MyClass() { 

    //Some static final variables 

    MyInnerClass m = loadAllVariables(); 

    private void update(){ 
    } 
    ... 
    //All 60 methods come here 
    .... 
    private MyInnerClass loadAllVariables() { 
     MyInnerClass m = new MyInnerClass(); 
     //load all variables with pre-initialized values 
    } 

    private MyInnerClass() { 
     int a, b, c; //In reality, I have over 20 variables 
    } 
} 
+0

請記住,編譯後,事情不會保持不變... – hovanessyan 2012-02-25 09:54:34

回答

4

不是。方法中的方法數量並不重要。只有使用的方法才真正加載。如果你有成千上萬的方法,這對你(開發人員)來說可能是一個問題

保持你的代碼簡單明瞭更有可能提高性能。

+0

Thx Peter! +1:D – user656523 2012-02-25 10:02:10

2

性能不會受到太大的影響。只要確保你沒有實施上帝反模式。

從工程學的角度來看,其他開發人員可能會混淆您內部類的複雜層次結構。

0

它取決於!

首先,它很喜歡Peter Lawrey所說的,只是你在答案中使用的方法需要一些時間。例如:

public void update(){ 
if (sth) methodA(); 
else if(sth other) methodB(); 
else if(sth other) methodC(); 
} 

在上面的例子中,總是會調用一個方法。

Seconly,這取決於你的平臺。如果你正在爲桌面開發,60種方法是毫無意義的,除非你使用了上千種方法。但是如果你在Android上開發,一個update()的60個方法真的是一個大問題。爲什麼許多專家說你不應該在移動平臺上使用Getter/Setter。當然,這項工作會再次反對Design pattern :))當你在移動平臺上開發時,你會在性能和維護之間做出艱難的選擇。 (這意味着你的代碼將被清除,容易閱讀)

希望很明顯你:)

0

對不起鄉親,答案是錯誤的或者不解決真正重要的一點。

上面的類中的所有方法都是私有的。這意味着沒有多態繼承,JVM可以直接調用該方法,而不是通過調用動態方法。 「私人」意味着「最終」。

此外,所有微小的方法都由JIT內聯。所以沒有性能差異。