Как я могу отделить то, как (или даже если) модель домена рассматривается от реализации самого представления.В качестве примера рассмотрим следующий код:
public class Student
{
private Set<Course> enrollment;
public void enroll(Course c){
// domain implementation
}
public void unenroll(Course c) {
// domain implementation
}
}
Это довольно простой пример, но он подходит для того, что я спрашиваю.Что было бы хорошим способом гарантировать, что представление этого объекта отделено от фактической функциональности домена?Например, этот студент должен быть в состоянии быть представленным в XML, JSON или даже в какой-то игре, или не иметь представления какого-либо вида.
Некоторые из подходов, о которых я подумал, могут быть примерно такими:
@XmlRootElement(name="student")
public class StudentXmlView implements XmlView<Student> {
@XmlElement(name="enrollment")
private XmlVeiw<Set<Course>> enrollmentView;
}
Будет ли подход такого рода подходящим, или есть некоторые лучшие практики, которые обычно используются в Java дляотделить домен от его вида?