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 :

[Débutant] Références croisées entre packages


Sujet :

Langage Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 82
    Points : 68
    Points
    68
    Par défaut [Débutant] Références croisées entre packages
    Bonjour,

    Je continue ma découverte de Java et je me pose une question relative au scénario suivant : imaginons un projet subdivisés en deux packages A et B, avec B utilisant des classes de A. Pour structurer proprement le programme, je souhaite interdire à A d'utiliser des classes de B. Ceci dans le but d'éviter des références croisées qui alourdiraient mon programme. Pour rendre cela plus concret, on peut imaginer que A contiendrait des classes outil très basiques et B serait un package de plus haut niveau.

    Evidemment, je peux tout simplement "éviter" d'utiliser les classes de B depuis A. Mais ce n'est pas très sûr ! Je peux toujours référencer B par erreur (suite à un déplacement d'une classe de B vers A, par exemple).

    Je suis donc à la recherche d'un mécanisme standard qui permettrait de cacher le contenu d'un package à un autre package. Je précise que pour des raisons de commodités, je veux que ces deux packages soient stockés dans un répertoire parent commun. Je n'ai rien trouvé pour l'instant mais je découvre Java, ma question est sans doute triviale pour les chevronnés que vous êtes !

    Merci beaucoup !

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

    Informations professionnelles :
    Activité : Développeur Java

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

    Je ne pense pas que tu puisses "implémenter" un tel mécanisme... Par contre il existe des outils qui permettent de contrôler tout ça... Regarde JDepend (je ne l'ai pas testé mais je crois qu'il convient pour ce genre de problèmatique) ici on en parle (et le tutorial).

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 82
    Points : 68
    Points
    68
    Par défaut
    Merci, je vais regarder.

  4. #4
    Membre émérite
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Points : 2 582
    Points
    2 582
    Par défaut
    Il n'existe pas de précaution de ce type en java. La visibilité d'une paquetage est réglée uniquement par les déclarations de classes, de méthodes, ou de variables. La visibilité d'un paquetage est donc en elle même publique.

    Je ne connais pas de système qui permettrait d'obtenir ce que tu souhaites.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6
    Points : 6
    Points
    6
    Par défaut
    Bonjour,

    Tu peux agir sur la visibilité d'une methode ou d'une classe en les declarant public (Visible de partout) ou protected (Visible seulement a l'interieur du package et par les classes heritantes

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 82
    Points : 68
    Points
    68
    Par défaut
    Merci à tous pour vos réponses, ça me conforte dans l'idée que hormis peut-être des outils de contrôle a posteriori comme JDepend, il n'y a pas de moyen d'éviter les références croisées en Java.

    C'est étrange, tout de même, non ? Le C# interdit carrément les références croisées entre projets (que l'on peut vulgairement assimiler aux packages Java) et c'est très bien. Ou alors c'est mon choix de découper mon programme en plusieurs packages qui implémentent chacun une couche du programme qui est idiote ?

  7. #7
    Membre émérite
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Points : 2 582
    Points
    2 582
    Par défaut
    Pour C# je ne sais pas, mais en Java la notion de paquage n'est qu'une notion de facilité ou d'organisation d'écriture, sans conséquence lors de l'exécution du code.

    Par la force des choses, la notion de jar, ou war, a plus d'importance ; c'est elle qui te conduira à bien organiser tes paquetages, à cause de tous les pépins qui ne manqueront pas d'apparaitre lors des déploiements.

    Malheureusement, elle est très mal explicitée, et on ne prend des leçons qu'un peu tard...

    Nothing perfect.

Discussions similaires

  1. Références croisées imprécises avec le package titlesec
    Par zeddiccus dans le forum Mise en forme
    Réponses: 3
    Dernier message: 11/09/2013, 09h14
  2. [HIBERNATE] - Débutant - Requête croisées
    Par charlot44 dans le forum Hibernate
    Réponses: 19
    Dernier message: 14/06/2005, 17h06
  3. [SELECT] sélection croisée entre deux tables
    Par WriteLN dans le forum Langage SQL
    Réponses: 4
    Dernier message: 22/03/2005, 12h05
  4. [Débutant(e)]importer un package
    Par jazzy59 dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 27/01/2005, 15h36
  5. [Débutant] Dialogue Java entre les frames pour client HTML
    Par Carrel dans le forum Général Java
    Réponses: 4
    Dernier message: 03/06/2004, 11h39

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