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

avec Java Discussion :

Question de Conception


Sujet :

avec Java

  1. #1
    Membre habitué Avatar de Iphelias
    Homme Profil pro
    Développeur Java
    Inscrit en
    Février 2007
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2007
    Messages : 126
    Points : 130
    Points
    130
    Par défaut Question de Conception
    Bonjour à tous,

    Voila, je me pose une question de conception.

    Voici un exemple pour illustrer mon problème.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    public class Client {
        private Compte moncompte;
     
        public Client() {
            moncompte=new Compte();
        }
    [...]    
    }
    A l'utilisation je sais que ces 2 solutions sont possibles. Quel est le meilleur choix. Que nous impose le Génie logiciel?
    public void AjouterCompte(Client cli){
    Compte leCompte = new Compte();
    [...]
    cli.setMonCompte(leCompte);
    }
    ou

    public void AjouterCompte(Client cli){
    Compte leCompte = cli.getMonCompte();
    [...]
    }
    Pour ma part j'ai une préférence pour la première solution car on peut retrouver facilement l'association Client / Compte via la méthode setMonCompte(). Si par exemple l'application devient important et que de nombreuses personnes doivent faire de la maintenance. Mais je me trompe peut être.

    Donc j'attends votre avis

  2. #2
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2013
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2013
    Messages : 75
    Points : 138
    Points
    138
    Par défaut
    Bonjour,


    Pour moi si tu fait un fonction AjouterCompte faudrai que la classe soit comme cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    public class Client {
        private ArrayList<Compte> mescomptes;
     
        public Client() {
            mescomptes = new ArrayList<Compte>;
            mescomptes.add(new Compte());
        }
    [...]    
    }
    Une liste de compte, quand le client est cree un compte est cree dans la liste.

    Ensuite pour la fonction ajouterCompte elle devrai etre dans la class Client et ajouter un compte a la liste:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public void AjouterCompte(){
        this.mescomptes.add(new Compte());
    }

    Si j'ai bien comprit ce que tu ve faire voila comment je le ferai.

  3. #3
    Membre habitué Avatar de Iphelias
    Homme Profil pro
    Développeur Java
    Inscrit en
    Février 2007
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2007
    Messages : 126
    Points : 130
    Points
    130
    Par défaut
    Je me suis peut être mal exprimé, mais ma méthode "ajouterCompte" n'est pas une méthode de l'objet Client ou Compte.

    la question que je me pose c'est : "faire un .getCompte" et travailler sur l'objet instancié dans le constructeur ou faire un "new Compte()" et un "setCompte()" par la suite.

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 442
    Points : 417
    Points
    417
    Par défaut
    Ben les deux sont très différents... L'un te fait partir d'une instance de monCompte vierge, définie par le constructeur alors que l'autre (getCompte) te fait partir d'une instance de compte déjà créée et qui a pu évoluer

  5. #5
    Membre habitué Avatar de aelmalki
    Inscrit en
    Mars 2009
    Messages
    250
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 250
    Points : 125
    Points
    125
    Par défaut
    A mon avis, et de point de vue évolution du code source, il vaut mieux dissocier l'instanciation du Compte de la classe Client, il se peut fans le future que le ou les Compte Client soit récupérer par un service, ou de la base de données ou un fichier XML...

  6. #6
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

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

    Informations forums :
    Inscription : Juin 2011
    Messages : 6
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par Iphelias Voir le message
    Je me suis peut être mal exprimé, mais ma méthode "ajouterCompte" n'est pas une méthode de l'objet Client ou Compte.

    la question que je me pose c'est : "faire un .getCompte" et travailler sur l'objet instancié dans le constructeur ou faire un "new Compte()" et un "setCompte()" par la suite.
    En pratique on utilise des getters et des setters

  7. #7
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 442
    Points : 417
    Points
    417
    Par défaut
    Citation Envoyé par diskdiet Voir le message
    En pratique on utilise des getters et des setters
    Sauf dans le constructeur : il est tout à fait toléré d'initialiser une variable à ce moment. La question est plutôt pour moi : est-ce que le processus d'initialisation doit être séparé du processus de modification ?

  8. #8
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2013
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2013
    Messages : 75
    Points : 138
    Points
    138
    Par défaut
    Moi je pense qu'il est mieu de recuperer l'instance de l'objet et de la modifier, que d'ecraser l'ancienne instance par une nouvelle.

Discussions similaires

  1. [WIN32] question de conception
    Par gdpasmini dans le forum MFC
    Réponses: 4
    Dernier message: 10/07/2006, 12h08
  2. [Data-sources] Questions de conception
    Par xfacq dans le forum Général Java
    Réponses: 1
    Dernier message: 02/06/2006, 02h32
  3. [VB.net] Question sur conception
    Par arno2000 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 14/04/2006, 09h35
  4. [XML]Question de conception
    Par nana1 dans le forum Persistance des données
    Réponses: 17
    Dernier message: 17/11/2005, 10h34
  5. [Strategie][GUI]Petite question de conception
    Par bischof dans le forum Interfaces Graphiques en Java
    Réponses: 3
    Dernier message: 26/10/2004, 23h31

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