Toon posts:

[OO DESIGN] Automatisch registreren van statics (Reflectie)

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik zoek een goed ontwerp voor een volgend probleem:

Ik maak gebruik van een fout/informatie registreer-systeem. Ik dien bij dit systeem eerst op te geven welke soort meldingen ik wil registreren. Dit gebeurt d.m.v. een uniek nummertje, wat tijdens elke uitvoering van de applicatie weer gelijk is. Deze nummertjes zijn dus hardgecodeerd in de applicatie.

Ik heb dus een soort van systeem waarbij ik bep. melding-soorten wil registreren, en daarna aan wil roepen. Ik heb iets bedacht van een ontwerp waarbij iedere melding-soort door een klasse vertegenwoordigd wordt, en dat er maar 1 instantie van deze klasse mag bestaan (singleton). In deze klasse is dan het unieke nummertje als static (const) gezet. Ik zit hier een beetje mee, want verder doen deze klasse(n) niks, ze hebben enkel een unieke identificatie, maar verder geen gedrag.

Hiermee is het probleem niet opgelost. De ontwikkelaar moet na het definieren van de melding-soort eerst registreren. Dit is erg foutgevoelig, want het zijn er een groot aantal, en stel dat er eentje gemeld wordt, zonder dat deze geregistreerd is, dan gaat het fout.

Ik wil het dus mogelijk maken dat deze klassen/constanten automatisch geregistreerd worden bij het meldings-registratie-systeem. Is de enige mogelijkheid hiervoor reflectie? Ik implementeer het in C#, dus het is een mogelijk, maar gezien de overhead zou ik graag willen weten of er andere mogelijkheden zijn.

Alvast bedankt.

  • JaWi
  • Registratie: Maart 2003
  • Laatst online: 14-01 21:58

JaWi

maak het maar stuk hoor...

Persoonlijk zou ik het probleem niet middels reflectie oplossen. Simpelweg omdat reflectie daar eigenlijk niet de way-to-go is. Ik zou eerder een runtime check toevoegen die kijkt of een error-code wel geregistreerd is en vice-versa en een exceptie gooien op het moment dat er iets gemist wordt. Je hebt hier nl. gewoon te maken met een programmeer-fout (a.k.a "bug" ;)) omdat de programmeur verzuimt heeft om bij een error-code aan een melding te koppelen...

Statistics are like bikinis. What they reveal is suggestive, but what they hide is vital.