Java - 内部私有类,仅用于封装外部类的构造

时间:2014-06-07 18:10:34

标签: java inner-classes construction

这是一个很好的做法,有类,即内部类(非静态),只有任务是构造和启动外部类的对象(在她的构造函数中)? 这个类的生命周期等于外类构造函数的生命周期。

以下是示例:

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, ...);
    }
}

1 个答案:

答案 0 :(得分:0)

我觉得你试图重新发现builder pattern :)。你非常接近它,如果你改变你的构造函数只设置单个字段,而不是创建整个对象,那么它会好得多。

创建构建器可能会导致效率降低(必须保留jvm中的额外内存),但它可以大大减少您必须创建的不同参数化构造函数的数量 - 代码更加清晰。修改代码以满足构建器范例是值得考虑的,但最终的决定取决于您。