c# - 这种关于访问数据的设计如何?

标签 c# xml-serialization repository repository-pattern

我需要实现一个名为 Foo 的类,我需要通过数据访问来GetSave

我可以想象我需要类,一个是从 XmlFile 访问、获取和保存数据,另一个是通过类似查询返回对象的服务(GetFooById、GetFooByLevel、... ), 那是我的第一个。这就是为什么我想澄清这个设计以及我需要分离哪些东西的原因。

最佳答案

我认为您在存储库模式方面走在了正确的轨道上。 你可以这样做

public interface IFooRepository
{
   void Save(Foo);
   Foo GetById(int id);
   Foo GetByLevel(int level) 
}

 public class FooXmlRepository:IFooRepository
  {
       //implementation
   }

  IFooRepository repo= new FooXmlRepository(); //or via your favorite DI container

通过这种方式,Foo 对象与存储问题分离。以后如果您想使用 db 而不是 xml,只需编写另一个实现即可。该应用程序将使用该界面,因此您无需更改“ repo ”分配的任何其他内容。

关于c# - 这种关于访问数据的设计如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9995834/

相关文章:

java - 使用来自 flatDir 源的 gradle 插件

git - git push 和 git pull 有什么区别?

C# 将 GMT 日期字符串解析为 DateTime

c# - MVC 4 - 验证码.Mvc

c# - 在现有 C# 代码中发现的 Dispose。我应该摆脱它吗?

ssis - 使用 SSIS 数据配置文件 XML

c# - XmlSerialize 枚举标志字段

repository - zypper 更新包到以前的版本(不是最后一个)

c# - 无法访问已关闭的流

c++ - 为什么 boost::serialization 不检查 XML 文件中的标签名称?