Objekt-Orientert Design Mønstre forklart ved hjelp av praktiske eksempler
Atferdsmessige Mønstre
denne typen mønster er opptatt av kommunikasjon mellom objekter. I de fleste tilfeller avhengigheter mellom kommunisere objekter er redusert gjennom disse mønstrene som fører til bedre programvare design.
– Kjeden av Ansvar
Dette mønsteret skaper en kjede av mottakeren objekter for en forespørsel. Det unngår kopling sendt en forespørsel til mottaker, og gir flere objekter sjansen til å håndtere forespørselen. Motta objekter er knyttet sammen., I eksemplet nedenfor er en kjede av mellomvare enheter er konstruert. Forespørselen, som inneholder e-postadressen og passordet, er videresendt i kjeden. Nye elementer i kjeden kan være lett legges til.
Kommandoen
I kommando-mønster er et objekt som brukes til å kapsle inn all informasjon som trengs for å utføre en handling eller utløse en hendelse på et senere tidspunkt. Som vist nedenfor, ActionOpen definerer handlingen, så vel som objektet der handlingen er utført på., Mer informasjon er ikke nødvendig, og et annet objekt, for her menyen, kan utføre handlingen.
Tolk
Tolken mønster definerer en representasjon for grammatikk for et språk, og gir mulighet til å tolke setninger på det aktuelle språket. I kodebiten nedenfor et Pluss objekt kan tolke «operand1 + operand2» og du vet hva du skal gjøre med det uttrykket. Flere tolker kan legges uten å endre strukturen for mye. Parseren deretter bruker tolk for å forstå inngang.,
Iterator
Iterator er brukt til å gå gjennom en beholder av data for å få tilgang beholderen er elementer uten at du trenger å vite den underliggende strukturen. Også nye traversal varianter kan legges uten å endre grensesnittet av gjenstander eller data struktur i seg selv.
ChannelSurfer, som er avbildet nedenfor, kan få tilgang til tv på rad måte. Den RemoteControl objektet ikke trenger å bekymre hvordan tv er organisert. En RandomChannelSurfer, for eksempel, kan legges til uten mye problemer.,
Mekler
Hvis to eller flere objekter må samarbeide, Mellommann mønster kan brukes. Spesielt hvis objekter ikke kjenner hverandre, hvis de ikke skal være tett koblet, eller deres samspill er kompleks, dette mønsteret kan hjelpe.
I eksempelet nedenfor er det noen nødvendig samhandling mellom UI-elementer. Denne interaksjonen skjer gjennom AuthenticationDialog som en Megler. På denne måten samspillet er ikke definert i en av de deltakende objekter, men hentet inn mekleren.,
Minne
Minne mønster er nyttig hvis en bestemt tilstand av et objekt skal bli lagret for senere bruk. Dermed er det ikke bryter innkapsling av at objektet i implementeringen av detaljer. Det kan for eksempel benyttes for gjennomføring av en angre-mekanisme.
Observatør
I the observer pattern observatør objekter abonnere på et observerbart objekt til å bli varslet hver gang det observerbare endringer sine data., Observatører er løst koplet og kan bli lagt til og fjernet på kjøre-time.
Med hensyn til hvordan observatør til slutt får data fra observerbare, det er to varianter: push og pull. Koden nedenfor viser trekk variant, som er mer fleksible, som i dette tilfellet er det observerbare trenger ikke å vite hvordan observatøren ønsker å motta dataene, men observatøren kan hente data som ønsket.
State
Staten mønster kan et objekt endre sin atferd når sin interne tilstand endringer., Dette mønsteret ligner på strategi mønster, men i dette tilfellet er det besluttet internt hvordan objekter oppfører seg. Dette er spesielt nyttig hvis det er komplekse forhold definere hvordan objektet skal oppføre seg. Nye stater kan legges uavhengig fra eksisterende stater.
Strategi
I sammenheng med Strategi mønster det finnes flere varianter for en algoritme hvor en variant som er valgt ut til å bli henrettet ved kjøring.,
I eksemplet nedenfor har en Kompressor-objektet kan brukes med én av to forskjellige algoritmer som er definert på kjøre-time. Metoden som utfører handlingen (createArchive) så gjelder det valgt algoritme.
Mal
Malen mønster definerer en struktur for sub-klasser som i trinn av en algoritme og deres rekkefølge som er angitt. Dette sikrer at sub-klasser følg de samme trinnene, og gir bedre oversikt og konsistens., Det gir også mulighet til å definere standard implementasjoner for tiltak som kan overstyres av underklasser.
Som vist nedenfor alle parsere som arver fra DataParser følg de samme trinnene når parse() er utført. Dette sikrer for eksempel at alle parsere lukke filer og logge status.
Besøkende
Den Besøkende mønster gjør det mulig å bruke én eller flere driften til et sett av objekter ved run-time-uten å ha operasjoner tett koblet med objekt struktur.,
Dette lar deg implementere dobbeltrom utsendelse hvor en funksjon ringe til ulike konkrete funksjoner er avhengig av kjøre-time type to objekter. I eksemplet nedenfor på den ene side det er ruten elementer, og på den andre side besøkende objekter som hver utføre forskjellige funksjoner på ruten elementer. Hvis det er flere besøkende lagt til i fremtiden, ruten element ikke behov for å endre.