1

我知道这应该很简单,我应该知道,但它暂时让我难以理解。

我正在使用单例模式来帮助记录内容。然而,日志记录只发生在一个类中,单例基本上是一个布尔值的观察者,它打开和关闭日志文件。因为我不希望文件多次打开或关闭多次,所以我使用单例模式。但是,我不希望它成为一个全局值,而且我肯定不希望其他类,即使在访问它的包内也是如此。我怎样才能使它只有这一类使用它?

4

4 回答 4

3

使其成为您要在其中使用它的类中的私有类。另外,考虑将其设为静态类。

于 2009-01-21T19:52:21.473 回答
2

如果你不希望它被其他类访问,为什么它首先是一个 Singleton 呢?只需将其设为私有的实例类并保留对它的引用。

于 2009-01-21T19:36:47.387 回答
0

将记录到文件的类设为单例类,或将其设为单例类中的变量。布尔字段应该是你的单例的私有字段,没有人可以通过这种方式访问​​它。

于 2009-01-21T19:43:47.980 回答
0

一个 - 更多左字段 - 解决方案可能是在记录器中采用状态模式。当设置了记录标志时,实现会翻转到打开文件并记录到它的那个。当它被重置时,实现会失败,关闭文件并且不记录。设置和重新设置不再是一个布尔标志,而是一种改变状态的方法。

于 2009-01-21T19:50:36.983 回答