Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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()
  •  int resourceCount() - antallet employees til rådighet, inkludert Employee-instansen metoden blir kalt på. En Employee skal altså medregne seg selv i antall ressurser personen har til rådighet.

Lag dette grensesnittet, og lag så en Clerk-klasse som implementerer det. Klassen skal ha følgende konstruktør:

  • Clerk(String name) 

Clerk-klassen må inneholde egen logikk for å løse doCalculations, men skal delegere printDocuments til en Printer-klasse.

Definer en Printer-klasse med følgende metoder:

  • printDocument(String document) - skriver documentet til konsollen

  • getPrintHistory() - returnerer en List<String> med dokumenter som har blitt printet

La så Clerk delegere printDocument(String document) til Printer. 


Testkode for Clerk er her:  ... Originalkoden for testen(jextest) kan du finne her: ...

...

Vi definerer så sjefen til de hardt-arbeidende Clerk-objektene. Manager-klassen har følgende konstruktør:

  • Manager (List<Employee> Collection<Employee> employees)

...

La så Manager  implementere Employee-grensesnittet. Implementer oppgavene ved å delegere alle videre til en av arbeiderne i listen med Clerk-objekter gitt i konstruktøren.

...