Hello world! și testați instalarea acestuia (rulare cu
succes). Deși exemplele de cod de mai jos sunt în Java, nu este
obligatoriu să faceți și voi implementarea în Java. Exemplele de mai
jos sunt pur ilustrative.Într-o facultate notele studenților sunt gestionate de către secretariat astfel: profesorii pun note studenților, secretariatul stochează notele și notifică atât studenții (care primesc notele) cât și profesorii (care au trimis notele spre înregistrare de către secretariat în catalog).
Professor professor1 = new Professor("Professor1");
Professor professor2 = new Professor("Professor2");
Student student1 = new Student("Student1");
Student student2 = new Student("Student2");
Student student3 = new Student("Student3");
Ambii profesori au voie sa puna note:
List<Professor> professors = new ArrayList<>();
professors.add(professor1);
professors.add(professor2);
Secretariat secretariat = new Secretariat(professors);
Dintre toți participanții, doar câțiva vor primi notificări, și
anume profesor1, student1 și
student2:
secretariat.addNotifiable(professor1);
secretariat.addNotifiable(student1);
secretariat.addNotifiable(student2);
Testați implementarea voastră pe următoarele scenarii:
profesor1 notează studentul
student1:professor1.gradeStudent(secretariat, student1, "PLP", 7);
System.out.println(professor1.getMostRecentNotification());
System.out.println(student1.getMostRecentNotification());
În acest caz ar trebui ca ambii să primească notificări (fiecare linie din output-ul de mai jos reprezinta notificarea pentru fiecare participant, în ordine):
Grade for student Student1 is successfully registered: Grade{discipline='PLP', grade=7}
Professor Professor1 just graded you with Grade{discipline='PLP', grade=7}
profesor1 notează studentul
student3:professor1.gradeStudent(secretariat, student3, "PLP", 8);
System.out.println(professor1.getMostRecentNotification());
System.out.println(student3.getMostRecentNotification());
În acest caz ar trebui ca doar primul să primească notificări:
Grade for student Student3 is successfully registered: Grade{discipline='PLP', grade=8}
no recent notification
profesor2 notează studentul
student2:professor2.gradeStudent(secretariat, student2, "PLP", 9);
System.out.println(professor2.getMostRecentNotification());
System.out.println(student2.getMostRecentNotification());
În acest caz ar trebui ca doar al doilea să primească notificări:
no recent notification
Professor Professor2 just graded you with Grade{discipline='PLP', grade=9}
profesor2 notează studentul
student3:professor2.gradeStudent(secretariat, student3, "PLP", 10);
System.out.println(professor2.getMostRecentNotification());
System.out.println(student3.getMostRecentNotification());
În acest caz ar trebui ca ambii să primească notificări:
no recent notification
no recent notification