Ik wil in mijn applicatie gebruik gaan maken van java.util.Properties om resources (component labels, berichten etc.) presistent te maken, zodat die niet hard-coded in m'n klasses rondzweven. Ook ondersteuning voor meerdere talen is dan relatief eenvoudig. Nou vroeg ik me af hoe je zoiets het beste kan implementeren.
Alternatief 1:
In iedere klasse die van properties gebruik wil maken een load mechanisme implementeren, waarmee een properties file ingelezen kan worden. Deze properties file is dan specifiek op die klasse gericht.
Dit lijkt mij persoonlijk niet erg handig, omdat ik dan alle klasses langs moet lopen en in iedere klasse steeds dezelfde methode moet implementeren. Daarnaast krijg je een wildgroei aan properties files en voor iedere instantie van een bepaalde klasse wordt inhoud van de properties file opnieuw in het geheugen gezet.
Alternatief 2:
Een singleton klasse ResourceManager aanmaken die bij het starten van de ppliactie één properties file inleest voor de hele applicatie en een uitlees mechanisme aanbiedt.
óf
Dezelfde ResourceManager die op klasse basis eenmalig een propertie file inleest wanneer dat nodig is en deze bewaard tot er geen instanties van die klasse meer aanwezig zijn.
Een van deze varianten lijkt mij persoonlijk beter geschikt. De eerste variant heeft als nadeel dat de applicatie misschien wat traag opstart en meer geheugen gebruikt, omdat er overbodige resources geladen worden. Daarnaast moet je bij het wijzigen, toevoegen of verwijderen van een klasse de hele file doorspitten en aanpassen. De tweede variant heeft als nadeel dat je weer met een scheepslading verschillende resource files zit.
Alternatief 3:
Ik heb ook nog iets gelezen over ResourceBundles, maar dat was voor mij niet helemaal duidelijk. Misschien kan iemand wat meer uitleg geven over het gerbuik hiervan en de verschillende types.
Hoe zouden jullie dit aanpakken?
Alternatief 1:
In iedere klasse die van properties gebruik wil maken een load mechanisme implementeren, waarmee een properties file ingelezen kan worden. Deze properties file is dan specifiek op die klasse gericht.
Dit lijkt mij persoonlijk niet erg handig, omdat ik dan alle klasses langs moet lopen en in iedere klasse steeds dezelfde methode moet implementeren. Daarnaast krijg je een wildgroei aan properties files en voor iedere instantie van een bepaalde klasse wordt inhoud van de properties file opnieuw in het geheugen gezet.
Alternatief 2:
Een singleton klasse ResourceManager aanmaken die bij het starten van de ppliactie één properties file inleest voor de hele applicatie en een uitlees mechanisme aanbiedt.
óf
Dezelfde ResourceManager die op klasse basis eenmalig een propertie file inleest wanneer dat nodig is en deze bewaard tot er geen instanties van die klasse meer aanwezig zijn.
Een van deze varianten lijkt mij persoonlijk beter geschikt. De eerste variant heeft als nadeel dat de applicatie misschien wat traag opstart en meer geheugen gebruikt, omdat er overbodige resources geladen worden. Daarnaast moet je bij het wijzigen, toevoegen of verwijderen van een klasse de hele file doorspitten en aanpassen. De tweede variant heeft als nadeel dat je weer met een scheepslading verschillende resource files zit.
Alternatief 3:
Ik heb ook nog iets gelezen over ResourceBundles, maar dat was voor mij niet helemaal duidelijk. Misschien kan iemand wat meer uitleg geven over het gerbuik hiervan en de verschillende types.
Hoe zouden jullie dit aanpakken?