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

Java EE Discussion :

Question de conception


Sujet :

Java EE

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Juillet 2002
    Messages
    705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 705
    Points : 393
    Points
    393
    Par défaut Question de conception
    Bonjour,

    j'ai une façon de faire mon programme dont j'aimerai avoir votre opinion, car mon expérience ne me permet pas encore de s'avoir si je cours vers l'eccueil.

    L'utilise les EJB session stateless uniquement comme des tuyaux pour mettre en relation la couche présentation avec des couches de données ou business.
    (je fais du E commerce).

    Par exemple j'ai un I18nManager maison qui me renvoit les traductions pour des labels. Dans un programme stand alone j'appel ainsi:
    String traduction=I18nManager.getInstance().getTraduction(clé,Locale);
    le manager est un singleton. A l'initialisation, il charge les traductions depuis les xml. (je vous passe les détails de pourquoi j'utilise pas le 18n de java)

    PS: je ne met pas le code I18n dans celui du WAR, car c'est carrément un programme qui permet à des traducteurs de venir le modifié, non c'est conceptuellement un service.

    Pour y accéder coté IHM, je passe par l'EJB, j'ai un I18nBean qui me fournit l'instance du singleton.

    Et coté War j'ai un War18n encore un singleton, donc la seule fonction est de trouver l'ejb et de récupérer l'instance du 18nManager. Mon idée est bien sur d'éviter les appels jndi.

    Donc pour résumer j'ai:

    JSP --> WarI18nManager --> EJB --> I18nManager;
    Donc je n'utilise, si je ne me trompe, l'EJB que comme une classe spécialisé dans la communication RMI. Je cherche evidemment à prévoir le changement, notamment les web services et autres.

    Rem: je fais ca aussi pour les couches métiers et données (base de données)

    Qu'en pensez vous ?

  2. #2
    Membre habitué Avatar de xv-mnt
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2005
    Messages : 142
    Points : 178
    Points
    178
    Par défaut
    Rien à dire sur le modèle MVC, puisque les couches ont l'air bien respectées.
    Pour optimiser le code dans le cas spécifique de l'i18n, il serait intéressant de cacher tes traductions dans la partie WEB (présentation )pour éviter des allers-retours incessants entre le WEB et l'EJB à chaque JSP. Il existent des caches (OSCache par ex.) qui gèrent les data avec des timeout,etc... pour pouvoir recharger des data à la volée, ou bien via des MBeans.

    Normalement, tous les frameworks (Struts, JSF par exemple) gèrent l'I18N et cachent les textes traduits en interne.
    Tout le monde savait que c'était impossible à faire. Puis un jour quelqu'un est arrivé qui ne le savait pas, et il le fit (Winston Churchill)

Discussions similaires

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

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