类访问问题

时间:2009-01-21 19:32:19

标签: c# singleton

我知道这应该很简单,我应该知道,但暂时还在逃避我。

我正在使用单例模式来帮助记录内容。但是,日志记录只发生在一个类中,而单例基本上是一个用于打开和关闭日志文件的布尔值的观察者。因为我不希望文件被多次打开,或者不止一次关闭,所以我使用的是单例模式。但是,我不希望它成为一个全局价值,我确定不想要其他类,甚至在访问它的包中。我怎么能这样只有这一个班级使用呢?

4 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:2)

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

答案 2 :(得分:0)

使记录到文件的类成为单例类,或使其成为单例类中的变量。布尔字段应该是您的单例的私有字段,没有人能够以这种方式访问​​它。

答案 3 :(得分:0)

一个 - 更多左场 - 解决方案可能是在记录器中采用状态模式。设置日志记录标志后,实现将翻转为打开文件并记录到该文件的文件。当它被重置时,实现将翻转到关闭文件并且不记录的实现。设置和重新设置不再是布尔标志,而是一种进行状态更改的方法。