Pas forcement des outils tiers
J'ai développé un ensemble de builders abstrait pour les besoins d'un gros projet.
Tous dérive d'un builder abstrait père qui va lire dans une base de conf l'ensemble de la config associé au builder concret que l'ont veut déployer. Il va alors renseigner un membre de ce builder appelé simplement config. mais pour y parvenir il faut identifier le builder concret pour trouver dans la base la bonne entrée.
au début, on utilisait un fichier de propriété dans le jar qui était lu et qui contenait
module: monModule
name : myName
avec une annotation cela devient simple
@builder(module: "monModule", name : "myName")
le builder abstrait récupère les valeurs de l'annotation et trouve la conf.
Il n'y a pas de fichier ressource à fournir et il peut y avoir plusieurs builders dans le même jar.
C’est un peu comme si on avait ajouté des métadonnées à notre builder concret que le builder abstrait peut exploiter.
On aurait pu aussi passer par des membres statiques
Mais dans notre cas ces membres n'ont pas de sens c'est juste une implémentation de la notion de builder que nous utilisons qui en a besoin.
Avec une annotation on associe des propriétés à notre classe sans en changer la sémantique.
A+JYT
Partager