Designmønstre er hovedsakelig kategorisert i tre kategorier: Kreativt designmønster, strukturelt designmønster og atferdsdesignmønster. Disse skiller seg fra hverandre på grunnlag av detaljnivå, kompleksitet og omfang av anvendelighet for hele systemet som designes.
Det finnes også to typer mønstre - idiomer og arkitektoniske mønstre. Men vi vil ikke utforske dem i denne opplæringen.
Kreativt designmønster
Som navnet antyder, gir den mekanismen for oppretting av objekter eller klasser som forbedrer fleksibiliteten og gjenbrukbarheten til den eksisterende koden. De reduserer avhengigheten og kontrollerer hvordan bruken samhandler med klassen vår, slik at vi ikke ville takle den komplekse konstruksjonen. Nedenfor er de forskjellige designmønstrene til kreativt designmønster.
Abstrakt fabrikk- Den lar oss lage objekter uten å spesifisere deres konkrete type.
Byggmester - Den brukes til å lage komplekse objekter.
Fabrikkmetode - Det lar oss lage objekter uten å spesifisere den eksakte klassen som skal lages.
Prototype - Den brukes til å lage et nytt objekt fra det eksisterende objektet.
marquee html
Singleton - Singleton-designmønster sørger for at det bare er én forekomst av at et objekt er opprettet.
Strukturelle designmønstre
Strukturelle designmønstre er hovedsakelig ansvarlige for å sette sammen objekter og klasser til en større struktur og sørge for at disse strukturene skal være fleksible og effektive. De er svært viktige for å forbedre lesbarheten og vedlikeholdet av koden. Det sørger også for at funksjonene er riktig atskilt, innkapslet. Det reduserer det minimale grensesnittet mellom gjensidig avhengige ting.
Adapter - Det gir oss to inkompatible klasser til å fungere sammen ved å pakke et grensesnitt rundt en av de eksisterende klassene.
Sammensatte - Den pakker en gruppe objekter inn i et enkelt objekt.
Bro - Den frakobler en abstraksjon slik at to klasser kan variere uavhengig.
Dekoratør - Det utvider objektoppførselen dynamisk under kjøretiden.
Fasade - Den tilbyr et enkelt grensesnitt til mer komplekse underliggende objekter.
Fluevekt - Det reduserer kostnadene for komplekse objektmodeller.
Fullmakt - Det reduserer kostnadene, reduserer kompleksiteten og gir plassholdergrensesnittet til et underliggende objekt for å kontrollere tilgangen.
Atferdsdesignmønster
Atferdsdesignmønstre er ansvarlige for hvordan en klasse kommuniserer med andre.
Ansvarskjede - Den representerer kommandoen til en kjede av behandlingsobjekt.
Kommando - Den genererer objektene som innkapsler handlinger av parametere.
Tolk - Den implementerer et spesialisert språk.
Iterator - Den får tilgang til alle elementene i et objekt sekvensielt uten å krenke dens underliggende representasjon.
Formidler - Det gir den løse koblingen mellom klasser ved å være den eneste klassen som har detaljert kunnskap om deres eksisterende metoder.
Memento - Den gjenoppretter et objekt i forrige tilstand.
Observatør - Den lar en rekke observatørobjekter se en hendelse.
Stat - Den lar et objekt endre oppførselen når dets interne tilstander endres.
Strategi - Det gir en av algoritmefamiliene som skal velges under kjøretiden.
Malmetode - Det lar underklassene gi konkret atferd. Den definerer også skjelettet til en algoritme som en abstrakt klasse.
Besøkende - Den skiller en algoritme fra en objektstruktur ved å flytte hierarkiet av metoder til ett objekt.
Vi vil lære noen viktige designmønstre i den kommende opplæringen.