【发布时间】:2013-01-20 23:40:54
【问题描述】:
【问题讨论】:
标签: java constructor private-methods
【问题讨论】:
标签: java constructor private-methods
单例模式使用私有构造函数来控制对象的实例化。您可能遇到的另一个用例是当您希望在单元测试中使用特殊构造函数时(如果您在没有依赖注入框架的情况下运行单元测试),因此您不会将其公开,而是包保护并声明单元测试同一个包。
【讨论】:
我能想到private的一些用途:
最后一个完全人为的例子:
private MyClass(int a) {
this.a = a}
public MyClass(int a, String B) {
this(a);
this.b = b;
}
public MyClass(int a, double c) {
this(a);
this.b = Double.toString(c);
}
protected 的类似推理,它只是将特权少数扩展到子类和包邻居。
【讨论】:
当您想防止对象的外部实例化时,它很有用,例如静态工厂类、单例等。
【讨论】: