文字列のリストを作成したいとしましょう (これは実際のシナリオではありませんが、説明が簡単に聞こえます)。
このような文字列ファクトリのリストのインターフェースがあります
public interface IStringsListFactory{
List<string> Create();
}
しかし、私の具体的な工場の1つが、ファイル/データベースなどからこの文字列のリストを取得する必要があるとしましょう..
public class StringsListFromFile : IStringsListFactory{
private StreamReader _streamReader;
public StringsListFromFile(StreamReader sr) //StreamReader is just an example.
{
_streamReader = sr;
}
public List<string> Create(){
///recover the strings using my stream reader...
}
}
このアプローチが機能することはわかっていますが、ファクトリ パターンを壊してファクトリのコンストラクタにパラメータを渡して、インターフェイスを壊さないようにするかどうか疑問に思っていました。これを行うことに対応するものはありますか?私が考えていなかった別の解決策はありますか?質問しすぎですか!?(ええ、私はこれに対する答えを知っています!)