Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

[DAL] Singleton? Overerving?

Pagina: 1
Acties:
  • 103 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Ik ben bezig met het ontwerpen/implementeren van een 5-lagen-systeem: UserInterface -> ControllClasses -> BusinessUnits -> DAL -> Database / gegevens. De DAL is verantwoordelijk voor het ophalen van gegevens uit een database.

Ik zit met een aantal vragen waar ik zelf geen antwoord op vind, of in ieder geval geen duidelijke argumenten vind waarom ik iets niet moet doen.

Alle BU's gaan de DAL gebruiken om gegevens op te halen. Is het dan verstandig om een generalisatie/specialisatie relatie te leggen tussen de DAL en BU's te maken? Of kan ik beter gewoon 1 instantie maken van de DAL die alle BU's aanroepen?
Een mogelijkheid is dan om dit te doen mbv het singleton pattern, er is immers maar 1 instantie nodig. De connectie met de database blijft hierbij dus ook behouden gedurende de levensduur van de DAL.

Ik zit met deze vragen ivm met mijn studie. Als ik met deze vragen op school kom krijg ik verschillende (tegensprekende) dingen te horen waaronder:
  • Gebruik overerving want je BU's gebruiken toch allemaal de DAL functies.
  • Nooit generalisatie/specialisatie gebruiken (waarom? :? ), los het op met een singleton
En dan zijn er nog mensen die zeggen dat singleton tegen het princiepe van OOP ingaat en je het gebruik hiervan dus ook moet proberen te vermijden (zie bijv ook nederlandse wikipedia)

Hoe wordt dit in de praktijk opgelost/toegepast, en wat zijn jullie ideeën hierover? Kunnen jullie mij misschien ook iets meer informatie geven over waarom ik iets beter wel of niet kan doen. Of zijn er nog andere mogelijkheden om dit probleem op te lossen.

  • LauPro
  • Registratie: Augustus 2001
  • Laatst online: 30-11 12:59

LauPro

Prof Mierenneuke®

Je mag vooropstellen dat er geen heilige methode is. Elke methode heeft zijn voor- en nadelen en elk platform prefereert een andere methode.

Er lijkt me vanuit de DAL geen directe relatie met de BU's te zijn, enkel tussen de BU en de DAL. De DAL is in beginsel een abstractielaag van je database welke passief is (los van triggers, SP's etc).

Volgens mij lost dit ook je probleem op want de DAL is slechts een abstractie van de DB die je implementeert met je BU's.

Inkoopacties - HENK terug! - Megabit
It is a war here, so be a general!


  • Kwistnix
  • Registratie: Juni 2001
  • Laatst online: 22:48
Ik maak zelf altijd gebruik van Data Access Objects (die feitelijk samen de DAL vormen).
Ieder Business Object heeft in dat scenario zijn eigen DAO die toegang tot een data source afhandeld. Afhankelijk van de situatie kunnen sessies en transacties met de data source ook door de DAOs afgehandeld worden, maar meestal kies ik daar niet voor.
Vaak combineer ik DAOs ook met het Factory creational design pattern.

Omdat ik zelf eigenlijk exlusief met Java ontwikkeling bezig ben, maak ik eigenlijk altijd gebruik van bovenstaande methode toegespits op Hibernate, Spring DAO support en JTA.

[ Voor 3% gewijzigd door Kwistnix op 20-09-2007 18:59 ]