我目前代表我的應用程序中的單個項目中的業務層和數據層。我在兩套課程之間有很好的分離關係。但是,我的數據層類作爲參數並返回我的業務對象。因此,我將不得不代碼大概類似於(請不要太挑剔這個代碼,我的生產代碼看起來並不喜歡這個):如何完全分離我的業務層和數據層?
//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