-
static or not static
Bonjour,
étant malgré tout une débutante sur les technos Java/J2EE, j'ai de grosses questions existentielles qui restent parfois en suspend.
Ajd, je suis vraiment perplexe sur l'utilisation des méthodes (voir classes) statiques. Mon Chef de projet a tendance a tout faire en static.
Je trouve que c'est vraiment parfois par esprit de facilité.
Je trouve que parfois c'est un peu contraire à l'esprit qu'on m'avait enseigné y a 10 ans où une variable globale était à bannir au maximum, et finalement là par ces appels statiques on appelle tout et n'importe quoi depuis n'importe où.
Autant pour une classe abstraite de constante, je peux comprendre autant sur le reste (service, dao, & co) j'ai plus de mal.
Si qqun pouvait m'expliquer l'intérêt, l'utilité, quand faire du static ou non ca serait sympa.
Ensuite, autre pb : comment ca se passe avec une utilisation avec spring ?
Ex: j'ai codé un projet où j'utilise du Spring (IoC, MVC) et j'ai donc un certain nombre de beans en scope Session.
Et voila qu'on me file une classe composée que de méthodes statiques à intégrer dans mon dev, et du coup impossible d'y récupérer un bean Session. Une exception est générée à chaque fois car y a clairement un pb de contexte.
Comment résoudre ce genre de pb ?
Par avance merci.
ps: je suis preneuse de lien ou tout document expliquant ce genre de cas.
-
Bonjour,
Tout coder en statique signe clairement un grosse faiblesse dans la compréhension de java. Je ne veux pas juger par là ton chef de projet, mais c'est un fait.
Le gros défaut du débutant est de tout faire en statique par facilité, et il se retrouve coincé, quand des notions objets plus avancées arrivent : Comment on fait un new ? :mouarf:
Un petit refactoring du code pour faire de l'objet en 'vrai' ne devrait pas être trop long.
Bon courage,
-
Il sait faire des new, il sait faire de l'objet.
Mais dès qu'il s'agit de mutualiser du code dans une librairie java utilisée par plusieurs de nos applications, il a une tendance naturelle au static.
Il adore faire des factory statiques avec des attributs statiques.
Et son argumentation principale bien souvent est : mais à quoi bon instancier des objets, à quoi bon faire des new ? et si tu passe en multithread le scope de tes beans ne fonctionne plus etc...
Pour ma part, j'apprécie l'utilisation de Spring même si je ne maitrise pas encore très bien, et je préfère créer des interfaces, faire des implémentations de ces interfaces, et gérer le tout avec des beans et de l'injection de dépendance.