我需要实现一个名为 Foo 的类,我需要通过数据访问来Get
和Save
。
我可以想象我需要类,一个是从 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/