Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

organisation des classes d'une appli swing

4 réponses
Avatar
Sébastien Kirche
Bonjour,

j'ai en charge depuis peu une appli java qui a été commencée par un
collègue. Ni lui ni moi n'étions programmeurs java à la base et j'ai
quelques soucis d'organisation du code même si je me débrouille pas trop
en objet.

J'ai une classe principale pour l'appli (non visuelle, mais elle propose
un menu d'options dans une icône de la tray bar sous windows), des
classes spécifiques à des traitements ou des structures de données, et 2
classes pour afficher une fenêtre de préférences et une autre de log
(d'autres classes graphiques viendront peut-être s'ajouter par la
suite).

Quelle serait la méthode canonique pour pouvoir partager des réglages
globaux à l'application (mes préférences) avec la fenêtre de prefs ?
Sachant que la classe des prefs ne descend pas de la classe de l'appli.
J'avais pensé à la notion de classe amie, mais je ne sais pas si ce
concept existe en java ou s'il est adapté.

Pour info le collègue avait mis la classe de l'application statique et
les attributs publics pour que les autres classes puissent y accéder
(bof). Moi j'ai un peu modifié ça en enlevant les 'static' mais je me
retrouve à passer la classe principale au constructeur de ma fenêtre de
prefs pour qu'elle puisse accéder à son « parent » (pas forcément mieux
comme soluce).

Si vous avez des pointeurs vers de la doc (j'ai les « penser en java »
ou de la doc du site « Programmez » mais je n'ai pas tout lu), je suis
preneur aussi. Il y a pas mal de documentation dispo sur java, mais je
n'arrive pas à formuler mon problème d'organisation.

Merci.
--
Sébastien Kirche

4 réponses

Avatar
Jack
Bonjour,


Salut,

J'ai une classe principale pour l'appli (non visuelle, mais elle propose
un menu d'options dans une icône de la tray bar sous windows), des
classes spécifiques à des traitements ou des structures de données, et 2
classes pour afficher une fenêtre de préférences et une autre de log
(d'autres classes graphiques viendront peut-être s'ajouter par la
suite).

Quelle serait la méthode canonique pour pouvoir partager des réglages
globaux à l'application (mes préférences) avec la fenêtre de prefs ?
Sachant que la classe des prefs ne descend pas de la classe de l'appli.
J'avais pensé à la notion de classe amie, mais je ne sais pas si ce
concept existe en java ou s'il est adapté.


Tu as les getters et les setters qui peuvent t'aider.


Pour info le collègue avait mis la classe de l'application statique et
les attributs publics pour que les autres classes puissent y accéder
(bof). Moi j'ai un peu modifié ça en enlevant les 'static' mais je me
retrouve à passer la classe principale au constructeur de ma fenêtre de
prefs pour qu'elle puisse accéder à son « parent » (pas forcément mieux
comme soluce).


Tu peux aussi faire un singleton:
public class Appli {
private static Appli appli = null;
public static appli() {
return appli;
}

public static void main(String[] args) {
appli = new Appli();
appli.init(); // ton init
}
}

Après, dans ta fenêtre de pref, tu fait:

Appli.appli().getXXX();


Si vous avez des pointeurs vers de la doc (j'ai les « penser en java »
ou de la doc du site « Programmez » mais je n'ai pas tout lu), je suis
preneur aussi. Il y a pas mal de documentation dispo sur java, mais je
n'arrive pas à formuler mon problème d'organisation.


Tu pourrais regarder du côté des "design patterns". C'est assez connu dans le monde l'objet et ça peut te donner des idées.

Avatar
Sébastien Kirche
Le 14 février 2008 à 15:08, Jack a dit :

Quelle serait la méthode canonique pour pouvoir partager des
réglages globaux à l'application (mes préférences) avec la fenêtre
de prefs ? Sachant que la classe des prefs ne descend pas de la
classe de l'appli. J'avais pensé à la notion de classe amie, mais je
ne sais pas si ce concept existe en java ou s'il est adapté.


Tu as les getters et les setters qui peuvent t'aider.


Tout le problème dans mon cas c'est de savoir pour la fenêtre de prefs
sur quoi appeler un getter / setter.

Tu peux aussi faire un singleton:
public class Appli {
private static Appli appli = null;
public static appli() {
return appli;
}

public static void main(String[] args) {
appli = new Appli();
appli.init(); // ton init
}
}

Après, dans ta fenêtre de pref, tu fait:

Appli.appli().getXXX();


Il faudrait que je teste, c'est déjà plus propre que le tout statique
pour la classe Appli, et moins casse pied que transmettre des parents
lors de l'allocation des objets graphiques.

Si vous avez des pointeurs vers de la doc (j'ai les « penser en java
» ou de la doc du site « Programmez » mais je n'ai pas tout lu), je
suis preneur aussi. Il y a pas mal de documentation dispo sur java,
mais je n'arrive pas à formuler mon problème d'organisation.


Tu pourrais regarder du côté des "design patterns". C'est assez connu
dans le monde l'objet et ça peut te donner des idées.


Je n'y avais pas pensé. J'ai justement le bouquin O'Reilly « Design
Patterns, tête la première » dans la bibliothèque du boulot. Je ne
pensais pas que ça pouvait traiter de ce genre de conception. Je
regarderai.

Merci pour les pistes.
--
Sébastien Kirche


Avatar
Eric Razny
Le Thu, 14 Feb 2008 15:08:37 +0100, Jack a écrit :

Quelle serait la méthode canonique pour pouvoir partager des réglages
globaux à l'application (mes préférences) avec la fenêtre de prefs ?
Sachant que la classe des prefs ne descend pas de la classe de l'appli.
J'avais pensé à la notion de classe amie, mais je ne sais pas si ce
concept existe en java ou s'il est adapté.


Tu as les getters et les setters qui peuvent t'aider.


Bonjour.

A propos de getters et setters, il y a un article que je trouve
interressant ici :

http://www.javaworld.com/javaworld/jw-09-2003/jw-0905-toolbox.html

En anglais certes, mais le point de vue me semble interressant à
considérer.

Eric


Avatar
CHAFIK Wassime
Eric Razny wrote:

Quelle serait la méthode canonique pour pouvoir partager des réglages
globaux à l'application (mes préférences) avec la fenêtre de prefs ?
Sachant que la classe des prefs ne descend pas de la classe de l'appli.
J'avais pensé à la notion de classe amie, mais je ne sais pas si ce
concept existe en java ou s'il est adapté.
Tu as les getters et les setters qui peuvent t'aider.



Bonjour.

A propos de getters et setters, il y a un article que je trouve
interressant ici :

http://www.javaworld.com/javaworld/jw-09-2003/jw-0905-toolbox.html

En anglais certes, mais le point de vue me semble interressant à
considérer.

Eric
Bonjour

j'ai suivi le cours de la discussion, je tiens a remercier Eric
Razny,l'article m'a ouvert les yeux c'est que j'ai failli oublier que le
Java est du OO :-)