0

クラウド プロジェクトを 1 か月間構築しました。私の問題は次のとおりです。

Ibm Web サービスに接続するための 2 つのクラスがあります。最初のクラスはメイン クラスで、2 番目のクラスはテスト クラスです。Config File の appSetting にキーと値を設定します。

configFile の値が「TEST」の場合、プロジェクトはテスト クラスを使用し、値が「PROD」の場合、プロジェクトはメイン クラスを使用します。config の値を変更しても、どこでも変更されるわけではありません。

上司から「インターフェース」の使い方をアドバイスされましたが、よくわかりませんでした。

この問題を基本的に解決するにはどうすればよいですか?

4

1 に答える 1

1

テスト クラスと製品クラスの両方で、前述のインターフェイスを実装できます。使用するクラスの構成ファイルで選択を行うアプローチを使用する必要がある場合は、インターフェイスの正しい実装を返すデータ ファクトリ クラスを作成することをお勧めします。データ ファクトリは構成ファイルを読み取り、アプリ設定の値に応じて、インターフェイスを実装する正しいクラスを返します。

C# でこれを行う例 (概念は他の oo 言語でも同じです):

呼び出しクラスから:

SomethingFactory factory = new SomethingFactory(); ISomething testOrProdObj = factory.GetCorrectImplementation(); var result = testOrProdObj.MyMethod();

そしてファクトリークラスでは:

public class SomethingFactory { public ISomething GetCorrectImplementation() { //Do a check in appsettings to decide which class (TESTSomething or PRODSomething) to instantiate and return } }

インターフェースの実装

public class TESTSomething : ISomething

また

public class PRODSomething : ISomething

于 2012-12-31T09:50:53.407 に答える