【发布时间】:2013-05-16 03:35:59
【问题描述】:
我遇到了一个带有私有构造函数的类,但该对象是由另一个公共方法通过调用私有构造函数返回的。当我们可以将构造函数公开时,这种构造可能有什么优势?
public final class TokenTable {
static public int errorToken = 0;
static public int timesToken = 1;
static public int divToken = 2;
static public int plusToken = 11;
......
......
private final HashMap<String, Integer> keywordMap = new HashMap();
private final HashMap<String, Integer> operationMap = new HashMap();
private TokenTable() {
operationMap.put("*", timesToken);
operationMap.put("/", divToken);
operationMap.put("+", plusToken);
....
}
static public TokenTable getInstance() {
LexTokenTabInstance = new TokenTable();
return LexTokenTabInstance;
}
}
【问题讨论】:
-
我不得不说,我有点失望,这里的大多数答案都是单例。我猜这是
getInstance()的名字(这是单例吸气剂最常见的名字之一)......但仍然如此。 -
@cHao 如果您对当前的答案不满意,为什么不创建自己的答案?如果您觉得有比所提供的更好的答案,我很想读一读。
-
@Supericy:因为这里有两个很好的已经说了我想说的。让我沮丧的是其他人。
-
你也可以看看这个答案stackoverflow.com/questions/16620832/…,它与静态工厂模式有关。
标签: java constructor public-method