1

私はこれが単純であるべきだと知っています、そして私はそれを知っているべきですが、それは当分の間私を逃れています.

ログの記録に役立つシングルトン パターンを使用しています。ただし、ロギングは 1 つのクラスでのみ行われ、シングルトンは基本的に、ログ ファイルを開閉するブール値のウォッチャーです。ファイルを複数回開いたり、複数回閉じたりしたくないので、シングルトン パターンを使用しています。しかし、私はそれをグローバル値にしたくありません。また、パッケージ内でアクセスする場合でも、他のクラスを望んでいません。この1つのクラスだけがそれを使用するようにするにはどうすればよいですか?

4

4 に答える 4

3

使用したいクラス内のプライベートクラスにします。また、静的クラスにすることを検討してください。

于 2009-01-21T19:52:21.473 に答える
2

他のクラスからアクセスされたくない場合、そもそもなぜシングルトンなのですか? プライベートなインスタンス化されたクラスにして、それへの参照を保持するだけです。

于 2009-01-21T19:36:47.387 に答える
0

ファイルにログを記録するクラスをシングルトンクラスにするか、シングルトンクラス内の変数にします。ブールフィールドはシングルトンのプライベートフィールドである必要があります。この方法では誰もアクセスできません。

于 2009-01-21T19:43:47.980 に答える
0

1つ(もう1つの左翼)の解決策は、ロガーでStateパターンを採用することかもしれません。ロギングフラグが設定されると、実装はファイルを開いてログに記録するフラグに切り替わります。リセットされると、実装はファイルを閉じてログに記録しないものにフロップします。設定と再設定は、もはやブールフラグではなく、状態変更を行うメソッドです。

于 2009-01-21T19:50:36.983 に答える