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 :

[Debutant] Conseils pour l'architecture objet d'une appli


Sujet :

Langage Java

  1. #1
    Membre régulier
    Inscrit en
    Juillet 2004
    Messages
    306
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 306
    Points : 122
    Points
    122
    Par défaut [Debutant] Conseils pour l'architecture objet d'une appli
    Bonjour,

    je développe une application qui gère des clients et fournisseurs. Ces entités sont sotckés dans une base de données.
    Les propriétés sont relativement commune entre client et fournisseur. Je vais donc créer une classe abstraite entité qu'hériteront les classes clients et fournisseurs.
    Pour la couche DAO, je vais utiliser une classe ClientMgtDAO qui va gérer les accès à la base de données. Cette classe implémentera une interface que voici:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    public interface IEntiteMgt {
     
    //ajouter une entite
            void addEntite();
     
    //Supprimer une entite
            void delEntite();
     
    //Mettre à jour une Entite
            void updateEntite();
    }
    Et ensuite, une classe ClientMgtDAO

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public class ClientMgtDAO implements IEntiteMgt {
    [..]
    }
    et une classe FournisseurMgtDAO
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public class FournisseurMgtDAO implements IEntiteMgt {
    [..]
    }
    Ca ne me semble pas trop mal, et vous qu'en pensez-vous ?

    Par contre, je devrais aussi effectuer des recherches de client et de fournisseur ?

    Pensez-vous que je doive développer une classe de recherche ou tout simplement ajouter une méthode recherche dans l'interface ?
    Evidemment, je devrais faire des recherches par id, par nom, par secteur d'activité.

    Merci pour vos suggestions.
    ++

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    178
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 178
    Points : 201
    Points
    201
    Par défaut Re: [Debutant] Conseils pour l'architecture objet d'une appl
    Citation Envoyé par etiennegaloup
    Ca ne me semble pas trop mal, et vous qu'en pensez-vous ?
    Difficile a dire tu n'a pas dit grand chose en faite. Tout ce que l'on sait c'est que tu a trois méthode sans argument ni valeur de retour.

    Citation Envoyé par etiennegaloup
    Pensez-vous que je doive développer une classe de recherche ou tout simplement ajouter une méthode recherche dans l'interface ?
    L'architecture logiciel objet avec les base de donnés surtout relationel est quelque chose de délicat. Il n'y a pas une seul facon de faire. Enfin je dirai quand même que ta classe doit représenter une abtraction qui ai un sens. Si c'est juste pour mettre 1 méthode de recherche dedans et faire de l'impératif caché dans de l'objet c'est pas la peine. Rajoute plutot des méthode dans l'interface.

  3. #3
    Membre régulier
    Inscrit en
    Juillet 2004
    Messages
    306
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 306
    Points : 122
    Points
    122
    Par défaut
    Bonjour,

    l'utilisateur pourra ajouter, supprimer des clients et modifier des informations clients. Il en sera de même pour les fournisseurs, d'où les méthodes de l'interface:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public interface IEntiteMgt {
     
    //ajouter une entite
            void addEntite(Entite entite);
     
    //Supprimer une entite
            void delEntite(Entite entite);
     
    //Mettre à jour une Entite
            void updateEntite(Entite entite);
    }
    Pour rappel, la classe Entite:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public abstract class Entite {
       int id;
       String nom;
       String adresse;
       String cp;
       String ville;
       String domaineActi;
    }
    la classe client:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public class client extends Entite{
     
    }
    la classe fournisseur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public class fournisseur extends Entite{
     
    }
    La classe EntiteMgtDAO permettra de gérer les entités (clients et fournisseurs) dans la base de données

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public abstract class EntiteMgtDAO implements IEntiteMgt {
    //ajouter une entite
            void addEntite(Entite entite);
     
    //Supprimer une entite
            void delEntite(Entite entite);
     
    //Mettre à jour une Entite
            void updateEntite(Entite entite);
    }
    puis les classes ClientMgtDAO et FournisseurMgtDAO sont des sous-classes de EntiteMgtDAO:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public class ClientMgtDAO extends EntiteMgtDAO{
    }
     
    public class FournisseurMgtDAO extends EntiteMgtDAO{
    }
    Et enfin pour finir je pense faire une classe recherche comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    public class searchEntite{
     
           public Entite searchEntiteByID(int id){
           }
     
           public Entite[] searchEntiteByNom(String nom){
           }
     
           public Entite[] searchEntiteByDomaineActi(String domaineActi){
           }
    }
    Qu'en pensez-vous ?
    Merci pour vos suggestions et remarques.
    ++

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2006
    Messages : 24
    Points : 31
    Points
    31
    Par défaut juste une suggestion
    Imaginons que ton App soit un serveur:
    tu dois gérer plusieurs accès et màj
    alors suggestion :: pense à la synchronisation .
    Sinon ton apps est bi1 mais docummentes toi sur les Design Patterns, ça te donnera beaucoup d'idées.

  5. #5
    Membre régulier
    Inscrit en
    Juillet 2004
    Messages
    306
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 306
    Points : 122
    Points
    122
    Par défaut
    pense à la synchronisation
    Oui, je suis bien d'accord avec ça. J'ai commencé à lire quelques cours de Serge Tahé, qui sont très bien fait, et j'ai notamment rajouté synchronized. Parce que mon appli sera sur un serveur.

    Sinon ton apps est bi1
    Oui et ça grâce aux cours de Serge Tahé et aux conseils de ze_key notamment.

    mais docummentes toi sur les Design Patterns, ça te donnera beaucoup d'idées
    Ok, je te remercie pour tes conseils, je vais me documenter sur les designs patterns.


    ++

Discussions similaires

  1. Réponses: 4
    Dernier message: 12/12/2006, 10h22
  2. [MySQL] Réaliser un script de statistiques : vos conseils pour l'architecture de la table ?
    Par MaTHieU_ dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 26/08/2006, 00h46
  3. [Debutant]Conseils pour le choix d'un environnement de dvpt
    Par etiennegaloup dans le forum Débuter
    Réponses: 10
    Dernier message: 05/04/2006, 21h39
  4. [I18N] Conseil pour l'architecture
    Par Alec6 dans le forum API standards et tierces
    Réponses: 5
    Dernier message: 11/10/2005, 23h49
  5. norme pour nommer les objets d'une bd
    Par katou3 dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 13/07/2005, 12h30

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