Documente Academic
Documente Profesional
Documente Cultură
Lab 6
Lab 6
RAPORT
Disciplina: TMPS
Tema: Library Manager
Chain of ResponsibilityPattern
Chisinau 2020
Mersul lucrării:
Chain of Responsibility - model de design comportamental care permite să trecem cererile
de-a lungul unui lanț de manipulatori. La primirea unei solicitări, fiecare handler decide fie să
proceseze solicitarea, fie să o transmită următorului operator din lanț.
Problema:
La ivirea unor probleme, atât de nivel înalt, cât și nesemnificative, a apărut necesitatea de
creare și de anunțare a manager-ului despre problemă, iar cu cât problema este mai serioasă, cu
atât mai repede trebuie de anunțat manager-ul.
Motivația:
Pattern-ul Chain of Responsibility ne permite crearea unui lang de manipulare a unor
aspecte. În cazul nostru este manipularea cu notificarile, astfel cu cât mai înalt este nivelul, cu
atât mai departe ea necesită a fi transmisă și procesată.
Pentru crearea lanțului fiecare clasă primește în constructor câte o prioritate ce se conține în
clasa Priority:
Fiecare clasă deja conține în sine metoda write() ce formează și transmite notificarea, iar
apoi afișează un mesaj în consolă. Astfel ReportNotifier conține metoda createReport, clasa
EmailNotifier – sendEmail și clasa SMSNotifier – sendSMS.
Clasa ReportNotifier:
Logger.getLogger(ReportNotifier.class.getName()).log(Level.SEVERE, null,
ex);
}
}
}
Clasa EmailNotifier:
@Override
public void write(String message) {
System.out.println("Sending email to manager: " + message);
sendEmail(message);
}
Message message;
try {
message.setSubject(messageSubject);
message.setText(messageToSend);
} catch (Exception e) {
System.out.println(e);
}
}
Clasa SMSNotifier:
@Override
public void write(String message) {
System.out.println("Sending SMS to manager: " + message);
sendSMS(message);
}