Versions Compared

Key

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


Excerpt

Denne oppgaven bruker delegeringsteknikken for å modellere arbeidsfordeling på en “vanlig” arbeidsplass. Denne oppgaven kan muligens oppleves som mindre meningsfull. Dette er kanskje omtrent tilsvarende hvor meningsløst noen typer kontorarbeid kan virke.

Vi skal i dette scenarioet ha en sjef, eller Manager, som har én eller flere arbeidere, eller Clerks, altså i en såkalt én-til-mange relasjon. Et Employee-grensesnitt definerer en oppførsel som er felles for de ansatte, og implementeres av både Manager og Clerk.

Employee-objekter på denne simulerte arbeidsplassen har to oppgaver:

  • utskrift av dokumenter
  • utførelse av matematiske beregninger 

Exercise-panelet

Bruk av Exercise-panelet er obligatorisk for denne øvingen. Du må ha panelet åpent med Office.ex-filen (tests > patterns.delegation.office Office.ex) i før du begynner med oppgaven. For mer informasjon/hjelp, se nederst på forrige side, altså hovedsiden for Øving 8.

Del 1: Employee, Clerk og Printer

Employee-grensesnittet har følgende metoder:

...

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

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

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

Testkode for Clerk er her: delegation/office/ClerkTest.java Originalkoden for testen(jextest) kan du finne her: delegation/office/Clerk.jextest

Testkode for Printer er her: delegation/office/PrinterTest.java Originalkoden for testen(jextest) kan du finne her: delegation/office/Printer.jextest

Del 2: Manager

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

...

Testkode for Manager er her: delegation/office/ManagerTest.java Originalkoden for testen(jextest) kan du finne her: delegation/office/Manager.jextest

Del 3:

...

Main-metode

Lag et hovedprogram en main-metode som illustrerer hva som skjer med effektiviteten når vi legger til flere nivåer med mellomledere.

...

Include Page
Bunntekst for JExercise- oppgaver
Bunntekst for JExercise- oppgaver