IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

Constructeur et accesseur


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Octobre 2008
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 41
    Par défaut Constructeur et accesseur
    Bonjour,
    petite question niveau pratique, alors j'aimerais savoir qu'elle est la meilleure façon de procéder lorsque l'on a un objet qui possède plus de 100 variables.
    Vaut il mieux créer un constructeur avec ces 100 variables en paramètres ou alors utiliser un constructeur vide et utiliser les accesseurs (setter en l'occurrence), ou pas de différence particulière?
    Merci.

  2. #2
    Membre émérite
    Avatar de michel.di
    Homme Profil pro
    Freelance
    Inscrit en
    Juin 2009
    Messages
    782
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 782
    Par défaut
    Salut,
    Personnellement je ne me vois pas remplir les 100 champs du constructeur! Je ne setterais que les champs qui me seraient utiles car je ne pense pas que les 100 champs doivent être initialisés?!

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2010
    Messages
    200
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 200
    Par défaut
    Je rejoins gailuris et michel.di, un contructeur à 100 paramètres, c'est pas le top... Ca t'oblige à construire ton objet obligatoirement avec tous les paramètres, de plus en construisant ton objets, tu te tromperas forcément de paramètre si tu dois en renseigner un centaine !

    Tu pourrais pas nous en dire un peu plus sur cette fameuse classe à 100 paramètres ?

  4. #4
    Membre chevronné
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2004
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2004
    Messages : 265
    Par défaut
    Salut,

    En terme de lisibilité/maintenabilité, une méthode ou un constructeur à 100 paramètres c'est un peu difficile... Donc j'opterais pour des accesseurs...

    Apres ça dépend du contexte, mais ça parait beaucoup 100 propriétés dans une seule classe selon j'opterais peut-être pour une Map, une agrégation de classes, des fichiers de propriétés...

  5. #5
    Membre Expert Avatar de Ivelios
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2008
    Messages
    1 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 031
    Par défaut
    Si les 100 paramètres sont du même type je ferais un tableau.
    Et pour l'accesseur, tu lui passe en paramètre la case du tableau que tu souhaites récupérer.

    Après... 100 paramètres... Mais WT*...

  6. #6
    Membre averti
    Inscrit en
    Octobre 2008
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 41
    Par défaut
    lol oui je sais ça fait beaucoup... en fait je suis plus ou moins obligé d'initialiser mon objet avec les données d'une requête... sachant que le système n'est pas très performant (les échanges avec la base utilisent beaucoup de ressources même pour une requêtes très simple avec peu de données retournées...)
    A la base j'étais sensé "remplir" mon objet au fur et à mesure mais en terme de perf, on augmente le nombre de requête (certes qui retourne moins de données d'un seul coup) mais les accès sont tellement longs que ce n'est pas une bonne solution... pour le moment j'utilise simplement les "setter", je pense que je reviendrais dessus par la suite (manque de temps pour la réflexion!).
    Merci pour vos avis sur la question!

  7. #7
    Membre Expert
    Inscrit en
    Août 2009
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 1 073
    Par défaut
    Pourquoi ne pas utiliser un framework de persistance qui te fera ça proprement ?

  8. #8
    Membre averti
    Inscrit en
    Octobre 2008
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 41
    Par défaut
    oui mais à cause des contraintes/restrictions technologiques... on fait comme on peut!lol

Discussions similaires

  1. [Language][constructeur] - attributs ou accesseur
    Par grand's dans le forum Langage
    Réponses: 6
    Dernier message: 26/04/2005, 09h47
  2. [VB6]Déclaration d'un Constructeur Spécialisé
    Par TagadaTsoin dans le forum VB 6 et antérieur
    Réponses: 21
    Dernier message: 26/05/2004, 15h09
  3. [Constructeur]Pb avec la surcharge d un constructeur
    Par cmoulin dans le forum Langage
    Réponses: 3
    Dernier message: 26/04/2004, 10h29
  4. Capture d'exception dans un constructeur
    Par declencher dans le forum Composants VCL
    Réponses: 8
    Dernier message: 03/02/2004, 13h52
  5. pb constructeurs classes dérivant classe abstraite
    Par Cornell dans le forum Langage
    Réponses: 2
    Dernier message: 10/02/2003, 20h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo