我有一个可以通过几种方式创建的数据集,其中一种是通过解析一些文本,另一种方式是从 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
}
}
在这种情况下,这是使用的正确模式吗?
最佳答案
我觉得这很好。这是经典Strategy实现。
您现在可以通过 dependency injection 选择真正的实现或创建一种方法来接收您需要的接口(interface)的一个实例。
关于c# - 这种情况下使用什么模式(接口(interface)实现),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37062159/