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?
