Hva er en ansvarskjede?

Ansvarskjeden (ReK) innebærer prosessen med å indikere aktivitetene og ansvarene til hver enkelt enhet i det objektorienterte designmønsteret. Det er to grunnleggende elementer i en objektorientert design; kommandobjekter og behandlingsobjekter. Kommandoobjektene genererer kommandoene til behandlingsobjektene, og behandlingsobjektene velger fra kommandoene som de kan håndtere og gi resten til de andre i kjeden. Dette er det grunnleggende prinsippet i objektorientert design, og det er mye mer fleksibilitet i designen, for eksempel den nye innkapslingen av objektene hvor som helst i designmønsteret til ansvarskjeden.

Fordelen bak objektorientert design er at kommunikasjonen ikke er begrenset til avsender og mottaker fordi det er mange objekter der for å håndtere avsenderens kommando. Det er en kjede med forskjellige objekter som stiller seg opp for å håndtere kommandoene, og hvis man ikke kan håndtere det, kan den gi den videre til den neste i kjeden. Ansvarskjeden fortsetter å gå til en av objektene godtar kommandoen.

Ansvarskjeden må være mer fleksibel og støtte tillegg av nye behandlere i kjeden. Siden hver behandler ikke er i stand til å utføre hver eneste oppgave, må det være en gruppe av håndterere som kan jobbe kollektivt. Det kan være noen ulemper med ansvarskjeden da noen av kommandoene forblir uløste, selv på slutten av kjeden. For å løse dette problemet er en løsning å implementere alle behandlere for alle mulige forespørsler.

Det kan være noen problemer relatert til de ødelagte leddene i ansvarskjeden. Hvis programmereren glemmer å koble kommandoene, kan forespørselen gå tapt. Forespørselsrepresentasjonen er viktig fordi den brukes i alle komponentene i ansvarskjeden. En annen feil som kan være i utformingen av Regionsutvalget er at på grunn av noen problemer i betongbehandleren, kan noen forespørsler ende helt uadressert på slutten av kjeden. Men alt i alt er ansvarskjeden et godt system å implementere hvis den nøye er designet, med tanke på alle relaterte aspekter.

ANDRE SPRÅK

Hjalp denne artikkelen deg? Takk for tilbakemeldingen Takk for tilbakemeldingen

Hvordan kan vi hjelpe? Hvordan kan vi hjelpe?