Avatar billede fanatic Nybegynder
02. februar 2008 - 22:25 Der er 6 kommentarer og
1 løsning

Factory design-spørgsmål

Hej eksperter.

BAGGRUND:
Jeg arbejder på noget kode som skal kunne søge efter data i en database, alt afhængig af nogle inputparametre, som programmet får.
Programmet skal evt. kunne modtage parametre. i form af en datatype, samt et dato interval. Herefter skal alle records med den korresponderende type, og indenfor datointervallet fremfindes. En anden mulighed er at der modtages et filnavn og evt. et datointerval. Herved skal programmet fremfinde de id’er, som står i filen, og som samtidig er oprettet inden for datointervallet. Der skal altså implementeres forskellige forespørgsler til databasen, alt afhængig af de parametre, som modtages i programmet.
Jeg har valgt at implementere hver forespørgsel (query) i en klasse for sig og bruge ”simple factory” pattern. Faktisk er det ikke et rigtigt pattern men minder om en simpel udgave af factory metod pattern.

Jeg har lavet et interface som vi kan kalde I. Dette definerer metoden search(). Derudover har jeg lavet en konkret implementering af forskellige queries, i hver deres klasse, som alle implementerer I. Herved er jeg uafhængig af de konkrete søge-klasser, da jeg kan lade en factoryklasse oprette objekter via noget swich’ing og returnere interfacetypen.

PROBLEM:
Jeg er lidt i tvivl angående hvordan jeg bedst muligt tilføjer logik, som skaber forbindelsen til databasen. Alle konkrete søge-klasser skal jo forbinde til databasen inden de kan søge. Det er fælles for alle sammen. Mit spørgsmål er så, hvor skal jeg placere denne logik der skaber forbindelsen?
Skal jeg lave en klasse som har ansvaret for dette og lade samtlige konkrete søge-klasser have en reference til denne og oprette databaseforbindelsen herved. Dette vil jo skabe en afhængighed for alle konkrete søge-klasser til denne ene klasse som opretter forbindelsen, er det mon godt? Hvad er mest hensigtsmæssigt mht. et godt design her?
Avatar billede arne_v Ekspert
02. februar 2008 - 22:29 #1
En mulighed var i.s.f. et interface at bruge en abstrakt basis klasse med metode
til at lave connection og en abstrakt search metode.
Avatar billede fanatic Nybegynder
02. februar 2008 - 22:39 #2
Hej Arne. tak for dit svar. Kan du uddybe det lidt? Mener du at bruge en abstrakt-klasse i stedet for mit interface?
Avatar billede arne_v Ekspert
02. februar 2008 - 22:51 #3
Ja.
Avatar billede arne_v Ekspert
02. februar 2008 - 22:51 #4
Eller interface-abstrakt klasse-konkrete klasser ...
Avatar billede fanatic Nybegynder
02. februar 2008 - 23:05 #5
Okay..dvs. definerer Search() i interfacet og lade en abstract-klasse implementere dette interface, samt lade de konkrete klasser arve fra den abstrakte klasse??
Avatar billede arne_v Ekspert
02. februar 2008 - 23:33 #6
Ja.
Avatar billede arne_v Ekspert
05. maj 2008 - 06:18 #7
all set ?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester