我目前代表我的应用程序中的单个项目中的业务层和数据层。我在两套课程之间有很好的分离关系。但是,我的数据层类作为参数并返回我的业务对象。因此,我将不得不代码大概类似于(请不要太挑剔这个代码,我的生产代码看起来并不喜欢这个):如何完全分离我的业务层和数据层?
//business class fragment
public bool Save()
{
if(this.IsValid)
{
//DataProvider is one of many data access classes that implement an IDataProvider interface. Switched elsewhere in the class. This allows switching of Database providers, xml, etc.
DataProvider.Save(this);
return true;
}
return false;
}
public List<MyBusinessObject> GetObjectsByCriteria(string criteria)
{
return DataProvider.GetMyBusinessObjectsByCriteria(criteria);
}
我不希望我的业务类有处理DataSets比我更喜欢让我的数据层类处理业务类。
我已经读了很多数据访问对象或数据传输对象来解决这个问题,但这似乎是这些模式的反模式案例。
我该怎么办?如何优雅地实现我的应用程序的这两个层的完全分离?
这是我们所做的,但我们也将它与DTO结合起来。 – 2009-07-01 01:04:32