エントリの方法として静的メソッドを使用することは、特に大きな問題ではありません。静的定義では状態情報を保存または分離できない場合があるため、状態を保存する必要がある作業領域があるかどうかに大きく依存します。幸いなことに、静的宣言を使用してからメンバー宣言に戻ることは、通常、その逆よりも苦痛が少なくなります。そのようなメソッドから返されたアイテムが状態に対して単独で責任を負う場合、これが問題として発生することさえないかもしれません。
個別のライブラリ/プロジェクトは、作業単位を分割するのに役立ちます。Dave Swersky が述べたように、特にマルチスレッド アプリでは、静的メンバー変数に癖が見られる場合がありますが、すべてを異なるライブラリに分離する必要があるという厳密な要件はありません。
個別のライブラリを使用すると、次の利点も得られます。
- 通常、プロジェクトの境界はソース管理の境界と一致するため、開発中の変更の分離が向上し、プラットフォームの表面全体でより多くの人が同時に作業できるようになります。
- レイアウトとインターフェイスに互換性がある場合、本番環境で個別に更新できる個別のパーツ。
- BLL か DAL かに関係なく、各レイヤーの特定のセグメントでどのような動作、機能、および役割が交差するかをより適切に整理します。一部の開発者は、特定の BLL で提供される項目に対してユーザーが操作できる内容に基づいて、コンポーネントを厳密に分離することを好みます。
ただし、一部の関係者は、大規模なモノリシック ライブラリの方が適していることを発見しました。このシナリオで重要な利点を次に示します。
- 古いコンポーネントと依存関係がめったに変更されないプロジェクトのコンパイル時間が短縮されます (特に C/C++ 開発者にとって重要です!)。集合的に変更されないソース ファイルはヒントとなり、コンパイラがプロジェクト全体の再コンパイルを回避できるようになります。
- 特定の場所に存在するオブジェクトの量を最小限に抑えることが重要なプロジェクト向けの、単一 (または少数) ファイルのアップグレードと管理。これは、個々のアイテムが順不同で公開または更新される可能性が低くなるため、他の関係者が使用するライブラリを提供する人々にとって非常に望ましいことです。
- Visual Studio .NET プロジェクトでの名前空間の自動レイアウト。サブフォルダーを使用すると、新しいコードを追加するために存在する最初の名前空間が自動的に暗示されます。特に素晴らしい特典ではありませんが、これが便利だと感じる人もいます。
- データベースまたはサーバーの抽象化による BLL と DAL のグループの分離。これはいくぶん中間点ですが、組織のレベルとしては、長期的な開発にはこのレベルの方が快適であることがわかります。これにより、保管場所や受け取り場所によって物を識別できるようになります。ただし、トレードオフとして、個々のプロジェクトはより複雑になる可能性がありますが、#3 で管理できます。
最後に、ネストされた静的クラスを実装しているように見えることに気付きました。あなたの作品を使用している他の人が、Intellisense または他の環境ショートカットを使用できない環境にいる場合、このセットアップを使用するのが非常に面倒であると感じるかもしれません。代わりに、いくつかのレベルのネストを個別の (またはネストされた) 名前空間に展開することを検討してください。これは、対象のアイテムを宣言するために必要な入力の量を減らすのにも役立ちます。静的なネストされたアイテムが毎回存在する必要がある場合、名前空間宣言は一度だけ存在する必要があるためです。あなたのカウンターパートはこれを気に入るはずです。