複数の異なるアプリケーションで使用されている既存のデータアクセスおよびビジネスロジックレイヤーについて考えてみます。これまでは、データを使用した特定のアプリケーションの存続期間中、単一のデータ接続のみが必要でした。そのため、接続情報はデータによって簡単に取得できました。アプリケーションの構成ファイルからのレイヤー。ただし、今後は、データクラスとロジッククラスが、アプリケーションが呼び出しごとにデータ接続を決定するための柔軟性を提供する必要があります。さらに、クラスは、サービスを介して同時に複数のアプリケーションによって呼び出されるようになりました。
呼び出し元は、接続文字列を具体的に管理するのではなく、データ層内およびデータ層によって接続文字列に解決できる列挙型の接続名を管理する必要があります。
現在、すべてのデータとロジッククラスは静的であり、データのスコープは内部で、ロジックのスコープはパブリックです。
APIの使いやすさ、パフォーマンス、スレッドセーフ/呼び出し元の分離などを考慮して、呼び出し元からデータクラスのメソッドに至るまでキーを取得するためのいくつかの優れた戦略は何ですか。
2つの明らかなオプションは次のとおりです。
すべてのメソッドにパラメータとして接続キーを追加します。うん-起こることはないが、完全性のために含まれている。
ロジッククラスとデータクラスをインスタンスクラスに変更し、使用するメンバーメソッドのコンストラクターにキーを渡します。メソッドシグネチャの変更はありませんが、APIの呼び出し方法に大幅な変更が加えられます。
他にどのようなオプションがありますか?