c# - 这种情况下使用什么模式(接口(interface)实现)

标签 c# design-patterns

我有一个可以通过几种方式创建的数据集,其中一种是通过解析一些文本,另一种方式是从 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/

相关文章:

c# - SQLite 中如何默认启用外键级联删除?

c# - 使用 roslyn 生成语义代码

C++:当包含从类模板派生的类的 header 时,编译器警告 C4505

android - 使用更困惑的代码设计应用程序?

android - 是否最好使用 Activity.onAttachFragment 或 Fragment.onAttach 在 Activity 和嵌套 fragment 之间进行通信?

c# - 桌面 metro 应用程序

c# - 空字符串文字

c# - 私有(private)方法的最佳实践命名是什么?

c# - oo-spaghettio 网络架构

c# - 微软的dispose模式结构的原因是什么?