Nếu tôi muốn lưu và lấy một đối tượng, tôi có nên tạo một lớp khác để xử lý nó hay không, tốt hơn là nên làm điều đó trong chính lớp đó? Hoặc có thể trộn cả hai?
Đó là khuyến cáo theo mô hình OOD?
Ví dụ
Class Student
{
public string Name {set; get;}
....
public bool Save()
{
SqlConnection con = ...
// Save the class in the db
}
public bool Retrieve()
{
// search the db for the student and fill the attributes
}
public List<Student> RetrieveAllStudents()
{
// this is such a method I have most problem with it
// that an object returns an array of objects of its own class!
}
}
Đấu với. (Tôi biết những điều sau được khuyến nghị, tuy nhiên đối với tôi có vẻ hơi chống lại sự gắn kết của Student
lớp học)
Class Student { /* */ }
Class DB {
public bool AddStudent(Student s)
{
}
public Student RetrieveStudent(Criteria)
{
}
public List<Student> RetrieveAllStudents()
{
}
}
Làm thế nào về việc trộn chúng?
Class Student
{
public string Name {set; get;}
....
public bool Save()
{
/// do some business logic!
db.AddStudent(this);
}
public bool Retrieve()
{
// build the criteria
db.RetrieveStudent(criteria);
// fill the attributes
}
}