【发布时间】:2014-10-03 18:35:27
【问题描述】:
我正在编写一个类来保存文件中的行数据。因此它会有状态,但它是不可变状态,并且永远只有一组数据。我最初的实现是一个静态类,初始化块调用方法来读取文件。通过这样做,我可以确保在加载类时读取了数据,并且数据的任何访问器方法都不必检查这种情况。
一位审阅者评论说该类应该是单例的。虽然我理解他关于类具有状态的论点,但我认为它是一个 不可变 状态的事实(当然,一旦读取文件)会使这个论点无效。
我确实有其他一些顾虑,包括在静态初始化块中处理 IOException(当文件读取失败时抛出),但我对关于静态与单例问题的意见感兴趣。
【问题讨论】:
-
这里有很多关于单身人士的意见:stackoverflow.com/q/137975/10077
-
谢谢,弗雷德。我不知道有这么多反对他们。或者,至少,在很多人的观点中,它们被大量滥用。
-
我希望不变性(粗体)问题要么 1)是一个危险信号,有人可以将其识别为支持静态实现的明确信号,要么 2)绘制 cmets它的无关性和重定向关注于做出此决定的真实标准(假设它们存在)。五位观众认为“这个问题的答案几乎完全基于意见”这一事实很好地表明了上述标准不存在,所以我想这也是一个答案。嗯。值得一试。