【问题标题】:Class Access question类访问问题
【发布时间】:2009-01-21 19:32:19
【问题描述】:

我知道这应该很简单,我也应该知道,但我暂时不知道。

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

【问题讨论】:

    标签: c# singleton


    【解决方案1】:

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

    【讨论】:

    • 我把它设为私有内部类
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-05-25
          • 1970-01-01
          • 2020-09-15
          • 2011-08-25
          • 1970-01-01
          相关资源
          最近更新 更多