Strategi (designmönster)

designmönster inom programmering

Inom programmering är strategi ett designmönster som låter beteendet för en algoritm väljas när ett program körs. Detta mönster:

  • definierar en familj algoritmer,
  • kapslar in varje algoritm och
  • gör algoritmerna utbytbara inom familjen.

Strategi låter algoritmer variera oberoende från klienter som använder det.[1] Strategi är ett av mönstren som återfinns i boken Design Patterns av Erich Gamma, Richard Helm, Ralph Johnson och John Vlissides, som populariserade konceptet att använda mönster inom programvarudesign.

Till exempel, en klass som utför validering av inkommande data kan använda designmönstret för att välja en valideringsalgoritm baserad på vilken typ av data, källan till datan, användarens val, eller andra faktorer. Dessa faktorer är inte kända tills programmet körs, och kan kräva radikalt annorlunda valideringar som ska utföras. Valideringsstrategierna, som är inkapslade separat från valideringsobjektet, kan användas av andra validerande objekt på olika ställen i systemet (eller till och med i olika system) utan att kod behöver dupliceras.

Det grundläggande kraven i programmeringsspråket är att kunna lagra en hänvisning till en viss kod i en datastruktur och hämta den. Detta kan åstadkommas med mekanismer som inbyggda funktionspekare, förstaklassfunktioner, klasser eller klassförekomster i objekt-orienterade programmeringsspråk, eller genom att komma åt språkimplementeringens interna kodlagring via reflektering.

Struktur redigera

 
UML-diagram av mönstret

Referenser redigera

Den här artikeln är helt eller delvis baserad på material från engelskspråkiga Wikipedia.

Noter redigera

  1. ^ Eric Freeman, Elisabeth Freeman, Kathy Sierra and Bert Bates, Head First Design Patterns, First Edition, Chapter 1, Page 24, O'Reilly Media, Inc, 2004.