window.pipedriveLeadboosterConfig = { base: 'leadbooster-chat.pipedrive.com', companyId: 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', version: 2, } ;(funktion () { var w = vindue if (w.LeadBooster) { console.warn('LeadBooster findes allerede') } else { w.LeadBooster = { q: [], on: function (n, h) { this.q.push({ t: 'o', n: n, h: h }) }, trigger: function (n) { this.q.push({ t: 't', n: n }) }, } } })() Det er strategien! Designmønster for strategi - The Codest
Codest
  • Om os
  • Serviceydelser
    • Udvikling af software
      • Frontend-udvikling
      • Backend-udvikling
    • Staff Augmentation
      • Frontend-udviklere
      • Backend-udviklere
      • Dataingeniører
      • Cloud-ingeniører
      • QA-ingeniører
      • Andet
    • Det rådgivende
      • Revision og rådgivning
  • Industrier
    • Fintech og bankvirksomhed
    • E-commerce
    • Adtech
    • Sundhedsteknologi
    • Produktion
    • Logistik
    • Biler
    • IOT
  • Værdi for
    • ADMINISTRERENDE DIREKTØR
    • CTO
    • Leder af levering
  • Vores team
  • Casestudier
  • Ved hvordan
    • Blog
    • Møder
    • Webinarer
    • Ressourcer
Karriere Tag kontakt til os
  • Om os
  • Serviceydelser
    • Udvikling af software
      • Frontend-udvikling
      • Backend-udvikling
    • Staff Augmentation
      • Frontend-udviklere
      • Backend-udviklere
      • Dataingeniører
      • Cloud-ingeniører
      • QA-ingeniører
      • Andet
    • Det rådgivende
      • Revision og rådgivning
  • Værdi for
    • ADMINISTRERENDE DIREKTØR
    • CTO
    • Leder af levering
  • Vores team
  • Casestudier
  • Ved hvordan
    • Blog
    • Møder
    • Webinarer
    • Ressourcer
Karriere Tag kontakt til os
Pil tilbage GÅ TILBAGE
2018-12-18
Udvikling af software

Det er strategien! Designmønster for strategi

Sara Klimek

Et designmønster er en konceptuel model, der hjælper dig med at løse designproblemer i forskellige sammenhænge. Det er som en genanvendelig skabelon, du kan anvende til at strukturere kode.

Mens jeg arbejdede på en projektDet er vigtigt at huske, at man ikke skal opfinde den dybe tallerken igen. Hvis en løsning på et problem har vist sig at være effektiv, kan du spare masser af tid og et par hovedbrud ved at genbruge den. I tilfælde af systemarkitekturdilemmaer har vi udviklet nogle mønstre, der kan lette designprocessen.

Hvad er et designmønster?

Et designmønster er en konceptuel model, der hjælper dig med at løse designproblemer i forskellige sammenhænge. Det er som en genanvendelig skabelon, du kan anvende til at strukturere Kode. Sagen er, at designmønstre er veldokumenterede, velafprøvede og almindeligt kendte. Med andre ord: Brug et ordentligt designmønster, og vær sikker på, at andre designmønster-insidere (aka dine kolleger) vil forstå dine ideer uden problemer.

Er du ivrig efter at lære? Her kommer det strategiske designmønster.

Det strategiske designmønster:

  • definerer en familie af algoritmer,

  • implementerer hver af algoritmerne som en separat enhed,

  • gør, at hver af algoritmerne kan bruges i flæng i en given sammenhæng.

Et eksempel fra det virkelige liv? Autentificering

I en af vores apps har vi implementeret et par strategier til at godkende anmodninger. Vi tillader autentificering med cookies, JWT-tokens og API-nøgler. Det lyder som en familie af algoritmer for mig.

Lad os se på et eksempel på en implementering.

Vi har opdelt vores familie af autentificeringsalgoritmer i tre separate klasser. Hver klasse definerer den konkrete adfærd; det er her, alle implementeringsdetaljerne foregår:

modul AuthenticationStrategies
  klasse CookiesAuthentication
    def self.authenticate_request(request)
      puts "Jeg implementerer en cookie-godkendelsesalgoritme"
    end
  slut
klasse JWTAuthentication
    def self.authenticate_request(request)
      puts "Jeg implementerer en jwt-godkendelsesalgoritme"
    end
  end
klasse ApiKeyAuthentication
    def self.authenticate_request(request)
      puts "Jeg implementerer en api-nøgle-godkendelsesalgoritme"
    end
  end
end

Så har vi en kontekst/klient-klasse:

klasse Godkendelse
  def self.authenticate(authentication_strategy, request)
    authentication_strategy.authenticate_request(anmodning)
  end
end
request = "Jeg foregiver at være en request"
Authentication.authenticate(AuthenticationStrategies::CookiesAuthentication, request)
Authentication.authenticate(AuthenticationStrategies::JWTAuthentication, anmodning)
Authentication.authenticate(AuthenticationStrategies::ApiKeyAuthentication, anmodning)

Ovenstående script giver resultater:

Jeg implementerer en cookie-godkendelsesalgoritme Jeg implementerer en jwt-godkendelsesalgoritme Jeg implementerer en api-nøgle-godkendelsesalgoritme

Opsummering

  • Designmønstre er nyttige værktøjer til at løse arkitektoniske problemer,

  • Viden om designmønstre forbedrer kommunikationen om systemarkitektur med andre udviklere,

  • Strategi-designmønsteret passer til dine behov, hvis du har en masse algoritmer, der kan bruges i flæng i en given sammenhæng.

Relaterede artikler

Udvikling af software

Byg fremtidssikrede webapps: Indsigt fra The Codest's ekspertteam

Oplev, hvordan The Codest udmærker sig ved at skabe skalerbare, interaktive webapplikationer med banebrydende teknologier, der leverer sømløse brugeroplevelser på tværs af alle platforme. Lær, hvordan vores ekspertise driver digital transformation og...

DENKODEST
Udvikling af software

Top 10 Letlands-baserede softwareudviklingsvirksomheder

Læs om Letlands bedste softwareudviklingsvirksomheder og deres innovative løsninger i vores seneste artikel. Find ud af, hvordan disse teknologiledere kan hjælpe med at løfte din virksomhed.

thecodest
Løsninger til virksomheder og scaleups

Grundlæggende om Java-softwareudvikling: En guide til succesfuld outsourcing

Udforsk denne vigtige guide til vellykket outsourcing af Java-softwareudvikling for at forbedre effektiviteten, få adgang til ekspertise og skabe projektsucces med The Codest.

thecodest
Udvikling af software

Den ultimative guide til outsourcing i Polen

Den voldsomme stigning i outsourcing i Polen er drevet af økonomiske, uddannelsesmæssige og teknologiske fremskridt, der fremmer it-vækst og et erhvervsvenligt klima.

TheCodest
Løsninger til virksomheder og scaleups

Den komplette guide til IT-revisionsværktøjer og -teknikker

IT-revisioner sikrer sikre, effektive og kompatible systemer. Lær mere om deres betydning ved at læse hele artiklen.

Codest
Jakub Jakubowicz CTO og medstifter

Tilmeld dig vores vidensbase, og hold dig opdateret om ekspertisen fra it-sektoren.

    Om os

    The Codest - International softwareudviklingsvirksomhed med tech-hubs i Polen.

    Storbritannien - Hovedkvarter

    • Kontor 303B, 182-184 High Street North E6 2JA
      London, England

    Polen - Lokale teknologiske knudepunkter

    • Fabryczna Office Park, Aleja
      Pokoju 18, 31-564 Kraków
    • Hjerneambassaden, Konstruktorska
      11, 02-673 Warszawa, Polen

      Codest

    • Hjem
    • Om os
    • Serviceydelser
    • Casestudier
    • Ved hvordan
    • Karriere
    • Ordbog

      Serviceydelser

    • Det rådgivende
    • Udvikling af software
    • Backend-udvikling
    • Frontend-udvikling
    • Staff Augmentation
    • Backend-udviklere
    • Cloud-ingeniører
    • Dataingeniører
    • Andet
    • QA-ingeniører

      Ressourcer

    • Fakta og myter om at samarbejde med en ekstern softwareudviklingspartner
    • Fra USA til Europa: Hvorfor beslutter amerikanske startups sig for at flytte til Europa?
    • Sammenligning af Tech Offshore-udviklingsknudepunkter: Tech Offshore Europa (Polen), ASEAN (Filippinerne), Eurasien (Tyrkiet)
    • Hvad er de største udfordringer for CTO'er og CIO'er?
    • Codest
    • Codest
    • Codest
    • Privacy policy
    • Vilkår for brug af hjemmesiden

    Copyright © 2025 af The Codest. Alle rettigheder forbeholdes.

    da_DKDanish
    en_USEnglish de_DEGerman sv_SESwedish nb_NONorwegian fiFinnish fr_FRFrench pl_PLPolish arArabic it_ITItalian jaJapanese ko_KRKorean es_ESSpanish nl_NLDutch etEstonian elGreek da_DKDanish