objektorienterede designmønstre forklaret ved hjælp af praktiske eksempler

0 Comments

adfærdsmønstre

denne type mønster vedrører kommunikationen mellem objekter. I de fleste tilfælde reduceres afhængighederne mellem kommunikerende objekter gennem disse mønstre, hvilket fører til bedre soft .are design.

ansvarlig kæde

dette mønster skaber en kæde af modtagerobjekter til en anmodning. Det undgår kobling afsenderen af en anmodning til modtageren og giver flere objekter mulighed for at håndtere anmodningen. Modtagelse af objekter er forbundet sammen., I eksemplet nedenfor konstrueres en kæde af Middle .are-enheder. Anmodningen, der indeholder E-mail og adgangskode, videresendes i kæden. Nye elementer i kæden kan nemt tilføjes.

Kommandoen

I kommandoen mønster for et objekt bruges til at indkapsle alle oplysninger, der er nødvendige for at udføre en handling eller udløse en hændelse på et senere tidspunkt. Som vist nedenfor definerer ActionOpen handlingen såvel som det objekt, som handlingen udføres på., Mere information er ikke nødvendig, og et andet objekt, her menu, kan udføre handlingen.

Tolk

Tolk mønster definerer en repræsentation for grammatik i et sprog, og giver mulighed for at fortolke sætninger på det pågældende sprog. I kodestykket nedenfor kan et Plus-objekt fortolke “operand1 + operand2” og ved, hvad de skal gøre med dette udtryk. Flere tolke kan tilføjes uden at ændre strukturen for meget. Parseren bruger derefter tolke til at forstå input.,

Iterator

Iterator bruges til at krydse en beholder af data for at få adgang til containeren elementer, uden at det er nødvendigt at kende den underliggende struktur. Desuden kan nye traversal varianter tilføjes uden at ændre grænsefladen af objekterne eller selve datastrukturen.
ChannelSurfer, afbildet nedenfor, kan få adgang til kanaler på hinanden følgende måde. RemoteControl-objektet behøver ikke at bekymre sig om, hvordan kanalerne er organiseret. En RandomChannelSurfer, for eksempel, kan tilføjes uden meget problemer.,

Mediator

Hvis to eller flere objekter har brug for at samarbejde, kan Mediatormønsteret anvendes. Især hvis objekterne ikke kender hinanden, hvis de ikke skal være tæt forbundet, eller deres interaktion er kompleks, kan dette mønster hjælpe.
i eksemplet nedenfor er der brug for en vis interaktion mellem UI-elementer. Denne interaktion sker gennem Godkendelsendialog som mægler. På denne måde er interaktionen ikke defineret i et af de deltagende objekter, men ekstraheret i mægleren.,

Memento

Memento pattern er nyttigt, hvis en bestemt tilstand af et objekt, der skal gemmes til senere brug. Derved overtræder det ikke indkapslingen af objektets implementeringsdetaljer. Det kan for eksempel bruges til implementering af en fortryd-mekanisme.

Observatør

I the observer pattern observatør objekter abonnere på en observerbar genstand til at få besked, hver gang de observerbare ændringer sine data., Observatører er løst koblet og kan tilføjes og fjernes på run-time.
med hensyn til hvordan observatøren endelig får dataene fra det observerbare, er der to varianter: skub og træk. Koden nedenfor viser pull-varianten, som er mere fleksibel, da den observerbare i dette tilfælde ikke behøver at vide, hvordan observatøren ønsker at modtage dataene, men observatøren kan hente dataene som ønsket.

Status

Staten mønster lader et objekt ændrer sin adfærd, når dens indre tilstand-ændringer., Dette mønster ligner strategimønsteret, men i dette tilfælde afgøres det internt, hvordan objekterne opfører sig. Dette er især nyttigt, hvis komplekse forhold definerer, hvordan objektet skal opføre sig. Nye stater kan tilføjes uafhængigt af eksisterende stater.

Strategi

I forbindelse med Strategien mønster der findes flere varianter til en algoritme, hvor den ene variant er valgt til at være henrettet på runtime.,
i eksemplet nedenfor kan et Kompressorobjekt bruges med en af to forskellige algoritmer defineret ved køretid. Metoden, der udfører handlingen (createArchive) anvender derefter den valgte algoritme.

Skabelon

Skabelon mønster definerer en struktur for sub-klasser, i hvilket trin af en algoritme, og deres rækkefølge er fastlagt. Dette sikrer, at underklasserne følger nøjagtigt de samme trin, hvilket giver bedre overblik og konsistens., Det giver også mulighed for at definere standard implementeringer for trin, der kan tilsidesættes af underklasser.
som vist nedenfor følger alle parsere, der arver fra DataParser, nøjagtigt de samme trin, når parse() udføres. Dette sikrer for eksempel, at alle parsere lukker filerne og logger status.

besøgende

besøgende mønster giver mulighed for at anvende en eller flere operationer på et sæt objekter på run-time uden at operationerne er tæt forbundet med objektstrukturen.,
Dette lader dig implementere dobbelt forsendelse, hvor et funktionskald til forskellige konkrete funktioner afhænger af run-time typen af to objekter. I eksemplet nedenfor på den ene side er der rute elementer og på den anden side besøgende objekter, der hver udfører forskellige funktioner på ruten elementer. Hvis der er flere besøgende tilføjet i fremtiden, behøver ruteelementet ikke at ændre sig.


Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *