我发现自己经常在以下两种设计模式之间进行选择:
static {
try {
foo();
}
catch(Exception exc) {
throw new RuntimeException(exc.getMessage());
}
}
和
TheConstructor() throws SomeException {
if(alreadyInited) {
return;
}
alreadyInited = true;
foo();
}
问题是我真的想为每个类初始化一次东西——我认为是静态的——比如设置一个记录器,从文件中加载一些地图等等——如果这个操作失败,我真的希望程序停止. 这两种设计模式看起来都很杂乱(第一个更明显),所以我想知道是否有更好的方法来做到这一点。