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