यदि मैं किसी ऑब्जेक्ट को सहेजना और पुनः प्राप्त करना चाहता हूं, तो क्या मुझे इसे संभालने के लिए कोई अन्य वर्ग बनाना चाहिए, या कक्षा में ही ऐसा करना बेहतर होगा? या शायद दोनों का मिश्रण?
OOD प्रतिमान के अनुसार किसकी सिफारिश की जाती है?
उदाहरण के लिए
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!
}
}
बनाम। (मुझे पता है कि निम्नलिखित की सिफारिश की गई है, हालांकि यह मुझे Student
वर्ग के सामंजस्य के खिलाफ थोड़ा सा लगता है )
Class Student { /* */ }
Class DB {
public bool AddStudent(Student s)
{
}
public Student RetrieveStudent(Criteria)
{
}
public List<Student> RetrieveAllStudents()
{
}
}
उन्हें कैसे मिलाया जाए?
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
}
}