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 :

[Débutant] Comment organiser ses packages ?


Sujet :

avec Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2007
    Messages : 41
    Points : 27
    Points
    27
    Par défaut [Débutant] Comment organiser ses packages ?
    Bonjour à tous !

    Débutant en java, et plongé dans la conception de mon premier programme, j'aimerais construire une arborescence propre.

    Je cherche des explications sur l'organisation des packages, je ne trouve pas grand chose...

    Pourriez-vous m'expliquer de quelle façon organiser ses classes dans des packages, avec des noms et des relations cohérentes entre les classes, et les packages ?

    Exemple : un package affichage ? un package avec des classes indépendantes ??

    Merci !

    Pirokkk.

  2. #2
    ndp
    ndp est déconnecté
    Membre actif Avatar de ndp
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 227
    Points : 255
    Points
    255
    Par défaut
    Salut,
    Citation Envoyé par Pirokkk Voir le message
    Pourriez-vous m'expliquer de quelle façon organiser ses classes dans des packages, avec des noms et des relations cohérentes entre les classes, et les packages ?

    Exemple : un package affichage ? un package avec des classes indépendantes
    les packages peuvent traduire le decoupage de ton appli en modules, donc ca depend de ton applis des choix de modules que tu fais.

    exp:
    Un module a une responsabilite plus large que celles assignees inidividuellement aux classes.
    A l'interieur d'un package , je dirai pas de convention de nommage, garde des noms explicites pour tes classes, elle doivent avoir la meme responsabilite generale (forte cohesion).
    Ce critere, tendra a eliminer les packages avec trop peu de classes. Il faut aussi veiller a ce que ton package soit compacte ie quelques classes publique, le reste masque.

  3. #3
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Salut,

    Il y a aussi la grande règle : "une classe d'un package ne peut faire référence qu'aux classes de son package ou d'un package fils."

    Bien sur, ce n'est pas toujours facile, et dans certains cas impossible. Mais ça aide à la conception, et ça a l'avantage de s'obliger à bien découper les différentes parties à concevoir avant de se lancer dans le code.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  4. #4
    ndp
    ndp est déconnecté
    Membre actif Avatar de ndp
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 227
    Points : 255
    Points
    255
    Par défaut
    Citation Envoyé par dinobogan Voir le message
    Salut,

    Il y a aussi la grande règle : "une classe d'un package ne peut faire référence qu'aux classes de son package ou d'un package fils."

    Bien sur, ce n'est pas toujours facile, et dans certains cas impossible. Mais ça aide à la conception, et ça a l'avantage de s'obliger à bien découper les différentes parties à concevoir avant de se lancer dans le code.
    C'est la premiere fois que j'entend cette "regle", je ne suis pas sur qu'elle aide vraiment,perso, je ne la suivrais pas. On dirait vaguement la notion d'architecture en couche...
    Peut-tu preciser?

  5. #5
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2007
    Messages : 41
    Points : 27
    Points
    27
    Par défaut
    Justement c'est cette histoire de référence et de lien qui me perds entre mes packages.
    J'essaye d'avoir quelque chose de construit, avec des classes liées par un package (beaucoup de références entre elles)...et un peu plus tard je me rend compte qu'une autre classe d'un autre package vient chercher une ou deux classes de mon package....
    Du coup je ne sais plus comment organiser cela !

    Sinon, peux-t-on avoir des packages, et des classes seules à côté ?
    Eh oui, si des classes n'ont pas lieux d'être dans un package déjà créés, et qu'elles sont indépendantes les unes des autres, comment faire pour garder cette organisation des packages, mais ne pas en créer un "poubelle" ou l'on met tout le reste, tout ce qu'on a pas pu caser dans les packages existants ?

    Pour l'instant j'ai un package nommé "independant"...c'est moche hein !!

  6. #6
    ndp
    ndp est déconnecté
    Membre actif Avatar de ndp
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 227
    Points : 255
    Points
    255
    Par défaut
    Citation Envoyé par Pirokkk Voir le message
    Justement c'est cette histoire de référence et de lien qui me perds entre mes packages.
    J'essaye d'avoir quelque chose de construit, avec des classes liées par un package (beaucoup de références entre elles)...
    Il faut que tu puisses etablir la responsabilite de ton package. Si tu y arrives, tu as un modules qui est plutot bien definie. D'un point vue interne au module, toutes tes classes ont la meme responsabilite (forte cohesion du module).
    D'un point vue externe, tu t'enleves de la complexite, parce que peux prendre ce module comme un tout coherent, ie tu peux faire abstraction du detail.

    Citation Envoyé par Pirokkk Voir le message
    et un peu plus tard je me rend compte qu'une autre classe d'un autre package vient chercher une ou deux classes de mon package....
    Du coup je ne sais plus comment organiser cela !
    mais ca c'est normal, si tu veux tes modules ne sont pas completement decouple, il faut bien faire interargir tes classes pour faire tourner ton application.
    Mais il faut surveiller ces liens, si tu as pleins de classes qui interargissent avec toutes les classes de ton package, ca peut etre un signe d'un probleme dans ton design.

    Citation Envoyé par Pirokkk Voir le message
    Sinon, peux-t-on avoir des packages, et des classes seules à côté ?
    Eh oui, si des classes n'ont pas lieux d'être dans un package déjà créés, et qu'elles sont indépendantes les unes des autres, comment faire pour garder cette organisation des packages, mais ne pas en créer un "poubelle" ou l'on met tout le reste, tout ce qu'on a pas pu caser dans les packages existants ?

    Pour l'instant j'ai un package nommé "independant"...c'est moche hein !!
    je te propose "util" ou "common" c'est mieux !

  7. #7
    Membre éclairé Avatar de bassim
    Homme Profil pro
    Ingénieur Réseaux
    Inscrit en
    Février 2005
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2005
    Messages : 666
    Points : 695
    Points
    695
    Par défaut
    généralement un package contient les classes qui sont fortement liées entre elles, du fait des règles métiers y régissantes et d'une certaine cohérence entre elles.

    Ensuite 2 packages différents peuvent avoir des liaisons entre eux, mais il faut essayer de réduire leur nombre le plus possible pour garder une certaine indépendance (implique par la suite une maintenance plus facile et moins sujette à des erreurs).
    Where is my mind

  8. #8
    Membre expérimenté
    Avatar de Patriarch24
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2003
    Messages
    1 047
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 047
    Points : 1 640
    Points
    1 640
    Par défaut
    Il y a aussi la grande règle : "une classe d'un package ne peut faire référence qu'aux classes de son package ou d'un package fils."
    J'aimerais bien savoir comment c'est possible...
    Exemple : un package toto fait appel à la classe java.util.Date ; pourtant, il n'est pas le père de java.util, ni le même package...
    Mais ça aide à la conception, et ça a l'avantage de s'obliger à bien découper les différentes parties à concevoir avant de se lancer dans le code.
    Une architecture reste rarement figée dans le temps. Souvent, un module trop gros sera découpé, alors qu'un module trop petit sera absorbé par un autre.
    En premier lieu, utilisez un moteur de recherche.
    En second lieu, postez sur le forum adéquat !

  9. #9
    ndp
    ndp est déconnecté
    Membre actif Avatar de ndp
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 227
    Points : 255
    Points
    255
    Par défaut
    Citation Envoyé par dinobogan Voir le message
    ...
    Il y a aussi la grande règle : "une classe d'un package ne peut faire référence qu'aux classes de son package ou d'un package fils."
    ...
    je pense qu'il y a confusion avec une architecture en couche : "une element d'une couche n'est conscient que des elements de sa couche ou d'une couche inferieure"

  10. #10
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Citation Envoyé par Patriarch24 Voir le message
    J'aimerais bien savoir comment c'est possible...
    Exemple : un package toto fait appel à la classe java.util.Date ; pourtant, il n'est pas le père de java.util, ni le même package...

    Une architecture reste rarement figée dans le temps. Souvent, un module trop gros sera découpé, alors qu'un module trop petit sera absorbé par un autre.
    java.util.Date est justement un exemple à part. C'est le fameux package "independant" de Pirokkk cité plus haut.
    Cette règle n'est pas à utiliser sur la vue projet, mais pour chaque API différentes importées dans le projet.
    Mais elle date de très longtemps : peu après la sortie de Java. J'ai surement parlé un peu vite en ramenant ma science sans m'expliquer plus clairement
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

Discussions similaires

  1. Comment organiser ses données ?
    Par SPKlls dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 30/12/2007, 12h17
  2. Comment organiser ses fichiers ?
    Par paterson dans le forum Langage
    Réponses: 15
    Dernier message: 12/03/2007, 17h14
  3. [PHP-JS] Comment organiser ses pages pour un gros site?
    Par ChriGoLioNaDor dans le forum Langage
    Réponses: 4
    Dernier message: 09/02/2007, 14h08
  4. [IMPORTANT!] Comment organiser ses recherches
    Par Emmanuel Lecoester dans le forum Firebird
    Réponses: 0
    Dernier message: 29/07/2005, 13h47
  5. [Debutant(e)][eclipse] Comment organiser ses projets ?
    Par Javanaute dans le forum Eclipse Java
    Réponses: 9
    Dernier message: 09/04/2004, 10h07

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