Я создаю веб-систему для студентов, чтобы посмотреть их результаты, просмотреть их расписание и т. Д. Однако у меня возникла проблема с архитектурой этой системы, так как я могу " t найти подходящий способ связывания данных.Дизайн системы ученого
Ученик, который находится в классе (школе). У студента есть табло. У класса (школы) есть список «заданий», которые учащиеся имели для каждого предмета, но у него есть только такие сведения, как имя, максимальный балл, вес. Фактический балл находится на табло студента.
- Многие учащиеся находятся в одном классе.
- Только один экземпляр задания должен существовать в любое время, и он должен жить в объекте SchoolClass, потому что он затем применяется ко всему классу, а не к ученику.
- Студент должен тогда держать только собственный счет и ссылаться на остальные данные назначения извне.
Как я могу ссылаться на конкретную домашнюю работу у ученика?
Это было путано. Это то, что я в настоящее время:
class Student extends Person {
private SchoolClass schoolClass;
private Scorecard scorecard;
}
class Subject {
private String name; /// "Compilers II", "Data Structures", etc.
}
class SchoolClass {
private Course course; // "Computer Science", "Administration", etc.
private List<Assignment> assignments;
class Assignment {
private Subject subject;
private int maxScore;
private int weight;
private String name; // "Test about material resistance II"
}
}
class Scorecard {
// How to reference each assignment from each subject in this student's class cleanly?
}
ли мой дизайн происходит в правильном направлении, или я должен просто стереть это и начать заново? Благодаря!
Да, 'Лицо 'является абстрактным. Но я спрашиваю больше о том, как, например, должна ли оценка каждого ученика ссылаться на оценку каждого задания для его класса? это больше, чем просто найти назначение по имени, оно должно содержать что-то, что говорит студенту что-то вроде «это оценка для назначения ***: x». должен ли он содержать хэшмапы, чьими ключами являются Assignment? Каково ваше предложение? –
Как насчет класса 'ReportCard'? Это может иметь объекты ArrayList из SchoolClass (по одному для каждого объекта), который, в свою очередь, уже имеет список назначений. Я обновил ответ, включив в него переопределение метода toString(), чтобы объекты назначения могли описать себя. – BitNinja
Я не думаю, что вы поняли, что я спросил, но вы мне все равно помогли. Я на самом деле имел в виду, как ссылаться на Assignments из класса Student. Фактический класс 'Assignment' не имеет никакой информации о фактической оценке учащегося, потому что существует один экземпляр« Assignment »для всего класса. Поэтому я в конечном итоге использую HashMap в классе 'Student'. –