(欠陥のある) 3 層アーキテクチャで実装されたプロジェクトがあります。私の仕事は、新しいデータベースをプロジェクトに簡単に追加できるように、より一般的なものにすることです。
具体的: SQL データベース用の databaseFacade があり、複数のデータベースを非常に簡単に追加できるように、より一般的なものにする必要があります。この場合、CSV ファイルに書き込みます。
データベース層での私のアイデアは、すべてのメソッドが定義されているインターフェイスを作成することでした。次に、このインターフェイスを実装するデータベース ファサード (どちらを使用するかによって異なります) を用意して、より一般的なものにします。次に、ある種の DBmanager クラスがあります。この DBmanager クラスは構成ファイルを読み取るので、どのデータベースを使用するかがわかります。この情報に基づいて、彼はインターフェイスのインスタンスを作成し、これをアプリケーション層に返します。
しかし、これは私が正しいかどうかわからないところです。アプリケーション層には現在、DBmanager クラス (すべてが正しくカプセル化されており、ファサードを返すために 1 つのメソッドのみが公開されています) があり、その後に DBfacade があります。
これの正しさについて何か考えはありますか?疑問を持っているからです。