Versions Compared

Key

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

...

  • 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 taskCountgetTaskCount() - returnerer hvor mange oppgaver (beregninger og printinger) som har blitt utført av eller på vegne av dette Employee-objektet
  • int resourceCountgetResourceCount() - antallet employees til rådighet, inkludert Employee-objektet metoden blir kalt på. En Employee skal altså medregne seg selv i antall ressurser den ansatte har til rådighet. Dette tallet skal inkludere alle Employee-objekter nedover i hierarkiet.

...

Clerk-klassen må inneholde egen logikk for å løse doCalculations, men skal altså delegere printDocuments til et Printer-objekt objektet gitt i konstruktøren.

Definer en Printer-klasse med følgende metoder:

  • printDocument(String document, Employee employee) - skriver documentet til konsollen og tar vare på dokumentet i employee sin historikk

    getPrintHistory(Employee employee) - returnerer en List<String> Collection<String> med dokumenter alle dokumentene som har blitt printet av employee i rekkefølgen de har blitt printet

La så Clerk delegere printDocument til Printer. Siden Clerk ikke har noen andre ansatte å delegere til, vil resourceCountgetResourceCount() alltid være 1.

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

...

La så Manager implementere Employee-grensesnittet. Implementer Managers oppgaver ved å delegere alle videre til en av arbeiderne i listen med Employee-objekter gitt i konstruktøren. Regelen for hvilken Employee som får hvilken oppgave delegert til seg kan du bestemme selv, men prøv å gjøre det slik at arbeidet fordeles jevnt på alle. Mens Clerk altså har kun én tilgjengelig ressurs vil Manager-objekter vil ha flere.

...

Lag først et Manager-objekt som blir tildelt noen Clerk-objekter under seg. Presentér deretter effektiviteten av hierarkiet ved å skrive ut taskCount/resourceCount getTaskCount()/getResourceCount() for Manager-objektet. Vis deretter hvordan effektiviteten faller når vi legger til nivåer med mellomledere ved å lage to eller flere nivåer med Manager, hvor lederne på bunnen tildeles Clerk-objekter, og skriv ut den nye effektiviteten for topplederne.

...