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

Logging Java Discussion :

question basique de design


Sujet :

Logging Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juin 2009
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 20
    Par défaut question basique de design
    Bonjour,

    J'ai trois solutions à un problème, mais je ne sais pas laquelle choisir! (et c'est un autre problème ^^) Bref, je développe un logiciel pour PDA (donc avec ressources limitées) et j'ai une IG avec plein de trucs dans mes menus. Voici comment j'ai organisé mes ActionListeners jusqu'à présent:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    // Action classes
    	class NewAction implements ActionListener {
    		public void actionPerformed(ActionEvent event) {
    			newDocument();
    		}
    	}
     
    	class OpenAction implements ActionListener {
    		public void actionPerformed(ActionEvent event) {
    			loadDocument();
    		}
    	}
     
    	class SaveAction implements ActionListener {
    		public void actionPerformed(ActionEvent event) {
    			saveDocument();
    		}
    	}
     
    	// related methods
    	void newDocument() {}
     
    	void saveDocument() {}
     
    	void loadDocument() {}
    Mais je me suis dit que créer une seule classe de Listener serait peut être plus économique pour la memoire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    	enum actionType {
    		newFile, openFile, saveFile
    	}
     
            // Special Class Menu Action
    	class MenuAction implements ActionListener {
    		actionType	action;
     
    		MenuAction(actionType actionType) {
    			action = actionType;
    		}
     
    		public void actionPerformed(ActionEvent arg0) {
    			switch (action) {
    			case newFile:
    				newDocument();
    				break;
    			case openFile:
    				loadDocument();
    				break;
    			case saveFile:
    				saveDocument();
    				break;
    			}
    		}
    	}
    ou même encore utiliser une factory (j'ai pas encore l'habitude donc je sais pas si c'est vraiment adapté). Mais je suis embeté car les Listeners étant des classes internes je ne peux créer une classe de factory dans un fichier séparé qui puisse créer ces listeners.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    // Action Factory
    	ActionListener actionFactory(actionType action) {
    		ActionListener listener = new ActionListener() {
    			public void actionPerformed(ActionEvent e) {}
    		};
    		switch (action) {
    		case newFile:
    			listener = new NewAction();
    		case openFile:
    			listener = new OpenAction();
    		case saveFile:
    			listener = new SaveAction();
    		}
    		return listener;
    	}
    Merci pour vos conseils!

    Renaud

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    je vais peut etre dire une connerie mais sur un PDA, c'est en général du J2ME, donc la première erreur que je verrais là: tu n'utilise pas les classes de java micro edition et, pire, tu utilise des classes de Swing qui n'est absolument pas disponible en Java mobile.

    Donc à moins que ce soit une connerie de ma part, c'est la première chose à vérifier

  3. #3
    Membre averti
    Inscrit en
    Juin 2009
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 20
    Par défaut
    En fait j'ai vu sur le site Java qu'il existe désormais Java SE for embedded mais ce que je voudrais savoir surtout si ça change quoi que ce soit au niveau de la mémoire (je ne m'y connais pas beaucoup).

    Par exemple définir plus de classes utilise t'il plus de mémoire qu'une grosse classe?

    Je pense que la factory n'est pas adaptée dans un cas pareil mais je voudrais savoir pourquoi. Est-ce parceque j'essaie de construire des instance de classes internes (les Listeners)?

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    oui, plusisuers classes ca fait plus de mémoire, chaque classe ayant sont byte code + ses données + tout ce qu'il y a autour, alors qu'une seul classe avec plein de méthode ne remnd présent qu'une seule fois toutes les données de gestion de la classe. Coté bytecode , ca change pas grand chose 2 méthode = 2 x 1 méthode de ce coté là il me semble.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Question basique (sdl)
    Par insomniak dans le forum SDL
    Réponses: 2
    Dernier message: 24/10/2005, 18h03
  2. Question Basique Gestion Erreur VBA ...
    Par Le_Phasme dans le forum Access
    Réponses: 2
    Dernier message: 11/10/2005, 13h42
  3. Question basique
    Par PatLeOuf dans le forum C++
    Réponses: 1
    Dernier message: 23/03/2005, 10h57
  4. Réponses: 5
    Dernier message: 04/03/2005, 12h14

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