私が最初にオブジェクト指向プログラミングを学び始めて以来、私が苦労してきた問題があります: 「適切な」OOP コードでロガーを実装するにはどうすればよいでしょうか?
これは、コード内の他のすべてのオブジェクトがアクセスできるようにするメソッドを持つオブジェクトを意味します。このメソッドは、ログに使用するコンソール/ファイル/その他に出力します。したがって、このオブジェクトはロガー オブジェクトになります。
ロガー オブジェクトをグローバル変数として設定したくありません。なぜなら、グローバル変数は良くないからです。しかし、すべてのオブジェクトで呼び出すすべてのメソッドのパラメーターで logger オブジェクトを渡す必要もありません。
大学時代、このことを教授に持ち込んだとき、彼は実際には答えてくれませんでした。この機能を実装する可能性のあるパッケージ (Java など) が実際に存在することを認識しています。しかし、私が最終的に探しているのは、これを適切かつ OOP の方法で自分で実装する方法の知識です。