Design Patterns Flashcards
Template Pattern
Typ:
Behavioral
Ett behavioral pattern som skapar strukturen för ett program i en superklass och låter dess subklasser overridea steg i strukturen utan att ändra den.
Exempel:
Superklassen “House” har subklasserna “Villa” samt “WoodHouse”. Därmed skapas ett interface strukturen “foundation”, “walls” och “windows” då ett hus byggs i denna ordning. Därefter kan subklasserna @Overridea dessa metoder om dem ska byggas på samma sätt.
Strategy Pattern
Typ:
Behavioral
Genom ett interface och polymorfism tillåter den subklasser att anta ett specifik beetende efter behov.
Exempel:
Superklassen “Animal” har subklasserna “dog” och “bird”. classerna “Fly” och “cantfly” implementerar interfacet move vilket, genom polymorfism, tillåter dog och bird att ärva dessa attribut.
Bridge Pattern
Typ:
Structural
Tillåter dig att dela upp större klasser eller flera nära relaterade till två separata hierarkier, abstraktion och implementation.
En bil har en motor och en färg. Olika bilar (av samma typ) kan ha olika motorer och olika färger. Skapa ett separat gränssnitt för motorer, och använd konkreta objekt för motorer som implementerar detta gränssnitt. Skapa ett separat gränssnitt för färger, och använd konkreta färgobjekt som implementerar detta gränssnitt.
Factory Pattern
Typ:
Creational
Ett pattern, som genom ett interface, tillåter instansiering av en superklass.
Tänk ett logistikföretag som arbetar med lastbilar och båtar. Detta logistikföretag blir väldigt populärt och har stor förfrågan på sina fordon. I kod kan man då implementera ett factory pattern för att “skapa” objekt av exempelvis lastbilar eller båtar.
Adapter Pattern
Typ:
Structural
Adapterpatternet används när två klasser har inkompatibla gränssnitt genom att skapa en adapter som möjliggör samarbete mellan dem.
Module Pattern
Module Pattern är ett pattern som skapar en sammanhängande enhet för hignivåmoduler.
Exempelvis carApp i labbpassen.
Facade Pattern
Typ:
Structural
Skapar ett simplare interface för ett större komplext set att exempelvis klasser.
Exempelvis carModel i labpassen.
Iterator Pattern
Typ:
Behavioral
Tillåter programmet att iterera över en samling objekt. Exempelvis en lista, ett träd eller en stack, utan att exponera dess underliggande kod för användaren.
Composite Pattern
Typ:
Structural
Gör det möjligt att använda grupper av objekt (av någon typ) på samma sätt som ett enskilt objekt (av den typen).
State Pattern
Typ:
Behavioral
Tillåter objekt att ändra sitt beteende under intern förändring.
En amfibiebil kan växla mellan att köra på land eller köra på vatten. Den har samma uppsättning beteenden (e.g. köra, svänga, backa), men dessa implementeras olika för olika tillstånd (land/vatten). En klient kan inte hitta på ett eget tillstånd (e.g. flygande).
Decorative Pattern
Genom att dela upp ett komplext objekt i flera oberoende aspekter, som kan sättas ihop ”lager på lager” med samma gränssnitt, kan vi hantera delar av en entitets tillstånd, ansvar och beteende separerat. (SOC)
Med Decorator Pattern representeras en entitet (dvs en sak/”ett objekt” ur domänen vi modellerar) dynamiskt genom en stapel (stack) av objekt, där grundobjektet ligger i botten.