2014-06-07 27 views
0

這是一種很好的實踐,它具有類,即內部類(而非靜態),只有任務是構造並啓動外部類的對象(在其構造函數中)? 這個類的生存期將等於外部類的構造函數的生命期。Java - 內部私有類僅用於封裝外部類的構造

這裏是例子:

OuterClass { 
    // (...fields here...) 
    private ConstructClass { 
     // (...some useful methods and fields here...) 
     public ConstructClass(String param1, int param2, ...) { 
      // (...construction of OuterClass here...) 
     } 
    } 
    public OuterClass(String param1, int param2, ...) { 
     new ConstructClass(param1, param2, ...); 
    } 
} 
+0

這是你需要的東西嗎?你爲什麼想做這個? –

+0

是的,爲了方便。 'OuterClass'非常簡單,只有複雜的部分正在構建中。 'OuterClass'中不需要不必要的字段和方法。 –

+1

我沒有看到這一點。使用構建器模式或工廠模式。這是兩個混亂的混亂。 –

回答

0

看起來像你對我試圖找回builder pattern :)。你相當接近它,如果你改變你的構造函數來設置單個字段而不是創建整個對象,會更好。

創建建設者可能會導致效率有所下降(在JVM額外的內存必須保留),但它可以在很大程度上降低你必須創建不同的參數化構造的量 - 該代碼是更清晰的這種方式。修改代碼以滿足構建器範例值得考慮,但最終決定取決於您。

+0

在我看來,'ConstructClass'的構造函數對於構建器來說太簡單了。 –

+0

Builder?哪一條路?構建者如何要求jvm內存儲備? – Val

+0

@Val:因爲你需要一個額外的對象。 –

相關問題