私は真剣にシングルトンを検討している私の設計のポイントに到達しました。
goto
誰もが知っているように、"一般的な" 議論は "絶対にやらないでください! ひどい!" であり、あたかもコードにたくさんのステートメントを散らかしたかのようです。
ServiceStackは素晴らしいフレームワークです。私自身と私のチームはそれを気に入っており、複雑な Web サービス ベースのインフラストラクチャを実装する必要があります。私は非同期設計を奨励しており、可能な場合SendAsync
はサービス スタック クライアントで使用しています。
これらすべての異なるシステムが異なることを行っていることを考えると、共通のロガーが必要だと思いました (Web サービスが利用できない場合、ローカル テキスト ファイルへのフォールバックを備えた、実際にはそれ自体が Web サービスです)。 - 例えば、何人かの悪魔が建物に忍び寄っている)。私は依存性注入の大ファンですが、「このロガークライアントを使用する」への参照をすべての非同期リクエストに渡すことは (少なくとも私には) クリーンではないようです。
ServiceStack の失敗のシグネチャがFunc<TRESPONSE, Exception>
(そして私はこれに問題はありません) であることを考えると、最初に呼び出しを行った外側のメソッドが有効なハンドルを持っているかどうかさえわかりません。
ただし、この時点で単一のロガーがあった場合、世界のどこにいても、どのスレッドにいても、無数の無名関数のどの部分にいても問題ありません。
これは受け入れられた有効なケースですか、それとも非引数ですか - シングルトンでダウンですか?