この場合、コメントで述べたように、ファクトリ メソッドを扱っています。
関連する API 仕様を参照してください。Logger
name パラメータの値に従って名前が付けられたロガーを取得します。指定されたロガーがすでに存在する場合は、既存のインスタンスが返されます。それ以外の場合は、新しいインスタンスが作成されます。
デフォルトでは、ロガーにはレベルが設定されていませんが、レベルが設定された直近の祖先から継承されます。これは、log4j の中心的な機能の 1 つです。
ファクトリ メソッド パターンは創造的な設計パターンであり、ウィキペディアによると、次のような状況で役立つことがよくあります。
factory パターンは、次の場合に使用できます。
- オブジェクトを作成すると、コードを大幅に複製することなく再利用できなくなります。
- オブジェクトの作成には、構成クラス内に含まれてはならない情報またはリソースへのアクセスが必要です。
- 生成されたオブジェクトの有効期間管理は、アプリケーション内で一貫した動作を確保するために集中化する必要があります。
これら 3 つすべてがここで適用できます...正しいロガーを見つけるためにどのような作業が行われるかを誰が知っていますか? ロガーを使用するたびに新しいロガーを作成することにはあまり関心がありません... 代わりに、主にそれを使用することに重点を置いています。
Creative Commons Wiki にも関連記事があります。
ファクトリ メソッドは、いくつかの理由のいずれかで、コンストラクターの代わりに使用されることがあります。
- 一部の言語 (Java など) では、コンストラクターに有用な名前を付けることができません。
- 一部の言語 (Java など) では、コンストラクターに異なる名前を付けることができません (これは、2 つのコンストラクターに同じメソッド シグネチャを使用する場合に必要になる場合があります)。
- 必要なたびに再作成するのではなく、同じインスタンスを再利用できるようにする ( FlyweightPatternを参照)
ここではおそらく 3 番目のオプションが最も適切だと思います。新しい を手動で作成すると、Logger
それらを適切に共有できません。ファサードを使用getLogger
すると、これを透過的に行うことができます。
全体として、ファクトリ メソッドの使用は通常、必ずしも気にしない作業を公開することなく、よりクリーンで単純なコードを有効にすることです。