java内部类私有构造函数,public成员

时间:2016-04-10 14:14:54

标签: java inner-classes public-method

我想知道这是否是设计课程的首选方式;如果不是它有什么问题,什么是更好的选择?

class Calculator {

   public Calculator(Input input) {...};
   CalculatorOutput output;

   class CalculatorOutput {
   private CalculatorOutput() {} //private constructor - so no one other than Calculator can instantiate this class
   Double someCalcStuff;
   List<Double> someOtherCalcStuff;
}

    public void calculate() {
    CalculatorOutput op = new CalculatorOutput();
    //..after this function populates the someCalcStuff & someOtherCalcStuff; it just returns an instance of CalculatorOutput
}

...
return op;

}

//usage

Calculator.CalculatorOutput result = new Calculator(input).calculate();
for (Double d: result.someOtherCalcStuff) {...}

我将CalculatorOutput作为计算器的内部类的原因是b / c除了返回计算器的输出之外没有其他目的或上下文。我有CalculatorOutput的成员作为公共b / c我真的没有看到将它们设为私有的点,然后通过getter / setter访问...因为我不希望这个内部类被继承,或做任何其他这篇文章中提到的功能:Why use getters and setters?

用户无法实例化内部类(私有构造函数),因此我没有看到创建内部类的公共可访问成员(CalculatorOutput)的真正缺点

具体问题:

  • 这种做法不好吗?为什么?
  • 实现这一目标的更好方法是什么?

0 个答案:

没有答案