私はいくつかの方法で作成することができるデータセットを持って、そのうちの一つは、いくつかのテキストを解析することによって、他の方法は、CSV形式からです、第三の方法はですそれをデータベースからインポートします。何パターン、この場合に使用するには(インタフェースの実装)
現在のところ、これはインターフェイスです:
public interface IMyDataMaker
{
public MyDataSet MakeData();
}
と、これはテキストパーサクラスです:
public class MyDataSetTextParser : IMyDataMaker
{
private readonly string textToParse;
public MyDataSetTextParser(string text)
{
textToParse = text;
}
public MyDataSet MakeDate()
{
// parse the text and return the dataset
}
}
のCSVパーサはテキストパーサに近い、これはデータベースクラスです:
public class DbMyDataSetMaker : IMyDataMaker
{
private readonly SqlConnection connection;
public DbMyDataSetMaker(SqlConnection sqlConn)
{
connection = sqlConn;
}
public MyDataSet MakeDate()
{
// connect to the db and make the dataset
}
}
この場合、これは正しいパターンですか?
この場合、戦略はうまくいくでしょう。 –
これは正しいアプローチですが、それだけではありません。戦略は、実行時にアプリケーションの動作を変更する必要がある場合には非常に便利ですが、特に戦略に1つのメソッドしかない場合は、デリゲートを使用することもできます。 'パブリック静的クラスMyDataMakerBehaviourFactory {パブリック静的のFunc(INT基準)を作成 {//が設け基準に従ってデリゲートを作成します。 } } ' コード内のどこかに: ' var func = MyDataMakerBehaviourFactory.Create(criterion); func.Invoke(); ' –