Tôi hiện đang đại diện cho Lớp kinh doanh và Lớp dữ liệu trong một dự án duy nhất trong ứng dụng của mình. Tôi có sự phân chia rất tốt mối quan tâm giữa hai nhóm lớp học. Tuy nhiên, các lớp Lớp dữ liệu của tôi lấy làm tham số và trả về các đối tượng nghiệp vụ của tôi. Vì vậy, tôi sẽ có mã lỏng lẻo giống (xin đừng quá quan trọng của mã này, mã sản xuất của tôi không giống nhiều như thế này):Tôi làm cách nào để tách riêng Lớp kinh doanh và Lớp dữ liệu của mình?
//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);
}
Tôi không muốn các lớp doanh nghiệp của tôi phải đối phó với DataSets nhiều hơn tôi muốn có lớp Data Layer của tôi đối phó với Business Classes.
Tôi đã đọc rất nhiều về Đối tượng truy cập dữ liệu hoặc Đối tượng chuyển dữ liệu để giải quyết vấn đề này, nhưng điều này có vẻ giống như trường hợp chống mẫu cho các mẫu đó.
Tôi có thể làm gì? Làm cách nào để tao nhã hoàn thành việc tách biệt hoàn toàn hai lớp ứng dụng của tôi?
Đây là những gì chúng tôi làm, nhưng chúng tôi cũng kết hợp nó với DTO. –