我们正在构建一个系统,我们希望最终实现“隐藏”数据访问层(以便我们将来可以更改它)。
所以想法是应用程序代码将调用一个接口,该接口将由数据库访问对象实现。所以我们有接口类:
public interface DatabaseInterface
{
void Create(DataObject obj);
}
然后我们有实现接口的类:
public class DatabaseAccess : DatabaseInterface
{
void Create(DataObject obj)
{
Entity dbContext = new Entity();
dbContext.Data.Add (obj);
dbContext.SaveChanged();
}
}
将这一切加在一起,我们就有了 DataObject 类:
public class DataObject
{
integer Data1;
string Data2;
}
我们的问题出在主应用程序上,因为我不知道 DatabaseInterface 实现是什么:
public class CreateElementOnDatabase
{
DataObject myObj = new DataObject();
myObj.Data1 = 10;
myObj.Data2 = "Test String";
var dbAccess = new DatabaseInterface() <=== I know this is not possible, but don´t know what to do!!!!
dbAccess.Create (myObj);
}
如何在不知道是哪个类的情况下调用已实现的方法?我肯定在我的设计中遗漏了一些东西。
我们真的想让应用程序完全独立于下面的代码。
[编辑 1]
这些实现驻留在不同的类库中。所以我有以下内容: App 项目 DatabaseInterface 项目 DatabaseAccess 项目 DataObject 项目