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

Windows Forms Discussion :

Classes et Orienté objet


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Septembre 2002
    Messages
    230
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 230
    Par défaut Classes et Orienté objet
    Bonjour à tous,

    J'ai dans la base une table "Client" : IDClient, Nom, Prenom, Age, IDVoiture*.
    une autre table "Voiture" : IDVoiture, LibelleVoiture
    * : clé étrangère

    J'ai crée deux classes (programmation C#). Un pour Client et un pour Voiture.
    + La classe Client a comme attribut IDClient, Nom, Prenom, Age

    Pour afficher les clients dans une grille, voilà comment je procède.
    + j'ai crée une classe ClientBusiness
    + j'ai développé une méthode dans la classe ClientBusiness qui s'appelle GetClients qui permet de chercher les clients qui ont un âge spécifique
    +List<Client> GetClients(int age)

    Je voudrai récupérer le libellé de la voiture pour chaque client.
    Que me conseillez-vous ?

    Le plus simple serait de rajouter un attribut libelleVoiture dans la classe Client qui sera renseigné lors de l'appel à GetClients mais cela me parait trop mal fait du fait que je ne vois pas pourquoi libelleVoiture fera partie des attributs de la classe Client.

    Merci par avance pour vos suggestions.

  2. #2
    Membre éclairé Avatar de Gregory.M
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 684
    Par défaut
    Non je ne pense pas qu'il faille ajouter un libellevoiture(string) mais plutot un object Voiture, ou une list de voiture si un client peut avoir plusieurs voiture

  3. #3
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    salut

    euh j'dis peut-etre une connerie mais dans ta classe client, tu pointes sur l'ID de la voiture.. Et en ayant cela, tu auras forcément le nom de la voiture..

    client => IdVoiture => Classe Voiture => Nom de la voiture

    Ca me parait assez nominal non ?

    The Monz, Toulouse

    PS : Je précise ne pas être un pro de BD mais là, ça semble "couler" de source !

  4. #4
    Membre éclairé
    Inscrit en
    Septembre 2002
    Messages
    230
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 230
    Par défaut
    theMonz31 : Ce que tu dis est vrai pour la BD mais pas pour l'OO. L'idée est de déclarer l'objet (Client), exécuter la requête SQL (réponse dans un datareader), récupérer les données du datareader et les affecter à une liste d'objets (Client) et finalement affecter la liste d'objet Client au datasource de la grille.

    Donc lors de lancer la requête SQL avec une jointure, il faudra que j'ai les membres adéquats dans la classe Client pour que je puisse les renseigner à partir du datareader

  5. #5
    Rédacteur
    Avatar de Paul Musso
    Profil pro
    Inscrit en
    Août 2008
    Messages
    368
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2008
    Messages : 368
    Par défaut
    Bonjour,

    Tout à fait d'accord avec gregorylepacha.
    Je rajouterai que tu peux ajouter une méthode GetVoiture(Client client) à ta classe ClientBusiness qui renseignera la référence de Voiture dans ta classe Client, ou tu peux aussi la rajouter à ta classe Client grâce à une méthode d'extension. Ca ne cassera pas ta cohérence.

  6. #6
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Classe Client
    // Properties and methods
     propriété Voiture : Voiture
    Fin Class Client
     
    Class Voiture
    // Properties and methods
    Fin Class Voiture
    Créé une propriété de la classe Voiture dans la classe Client. Sachant qu'un client ne possède qu'une voiture. Dans le cas contraire créer une collection de Voiture.
    Voilà.

    client = new Client(id);
    cout << client->voiture->libelle;

Discussions similaires

  1. Réponses: 4
    Dernier message: 30/05/2017, 12h28
  2. Classe orienté Objet
    Par Invité dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 31/01/2010, 11h38
  3. Réponses: 4
    Dernier message: 12/07/2009, 22h18
  4. régles de passage d'un diagramme de classe à un langage orienté objet
    Par lasmarmann dans le forum Diagrammes de Classes
    Réponses: 7
    Dernier message: 22/01/2007, 18h16

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