...
Employee-grensesnittet har følgende metoder:
String getName() - returnerer den ansattes navn
void doCalculations(BinaryOperator<Double> operation, double value1, double value2) - regner ut resultatet av å utføre operation med argumentene value1 og value2
void printDocument(String document) - Printer document. Hvordan dette gjøres avhenger av den spesifikke implementasjonen
- int taskCount() - returnerer hvor mange oppgaver (beregninger og printinger)
som har blitt utført av eller på vegne av dette Employee-objektet - int resourceCount() - antallet employees til rådighet, inkludert
- inkludert Employee- instansen
- objektet metoden blir kalt på. En Employee skal altså medregne seg selv i antall ressurser personen
- den ansatte har til rådighet. Dette tallet skal inkludere alle Employee-objekter nedover i hierarkiet.
Lag dette grensesnittet, og lag så en Clerk-klasse som implementerer det. Klassen skal ha følgende konstruktør:
...
Clerk-klassen må inneholde egen logikk for å løse doCalculations, men skal delegere printDocuments til en Printer-klasse.
...
Manager (Collection<Employee> employees)
La så Manager implementere implementere Employee-grensesnittet. Implementer oppgavene ved å delegere alle videre til en av arbeiderne i listen med med Clerk-objekter gitt i konstruktøren. En Clerk har altså kun én tilgjengelig ressurs, mens Manager-objekter vil ha flere.
Testkode for Manager er her: ... Originalkoden for testen(jextest) kan du finne her: ...
...
Lag et hovedprogram som illustrerer hva som skjer med effektiviteten når vi legger til flere nivåer med mellomledere.
Lag først et Manager-objekt som blir tildelt noen Clerks-objekter under seg.