Bonjour à tous,
J'aurai besoin de quelques conseils afin de choisir la meilleure ossature de base d'un projet. Je vais essayer d'être le plus clair et simple possible :
Pour commencer, j'ai une classe trés généraliste symbolisant un élément de mon appli, quel qu'il soit :
AbstractElement.java
De cette classe vont découlées d'autres classes de base :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 public abstract class AbstractElement { private final int id; public AbstractElement(int id) { this.id = id; } public final int getId() { return id;} }
SimpleElement.java
VisualElement.java :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 public class SimpleElement extends AbstractElement { private String name; SimpleElement(int id,String name) { super(id); this.name = name; } public String getName() { return name;} public void setName(String name) { this.name = name;} }
1) Je souhaite que, si nécessaire, un éditeur soit définit pour l'élément en question. C'est à dire qu'une méthode getEditor() me renverrai une JDialog ou null selon qu'il existe ou non un éditeur pour cet élément. Quelle méthode choisir ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 public class VisualElement extends AbstractElement { private Image image; public VisualElement(int id,Image image) { super(id); this.image = image; } public Image getImage() { return image;} public void setImage(Image image) { this.image = image;} }
- Définition abstraite ou par défaut de la méthode dans AbstractElement ?
- Une interface Editable contenant getEditor() ?
- Autre ?
2) De la même manière, je souhaite pouvoir ajouter, sur n'importe quel élément, une description par exemple. Mais attention, pas une simple String pour ce cas, mais bien une class Description avec plusieurs attributs, méthodes, etc.
Comment ajouter, en quelque sorte, un tel attribut (Description) à un (AbstractElement) ?
3) Je souhaite récupérer l'id d'un élément quel qu'il soit. Je ne connais pas sa classe, je sais juste que c'est un élément. N'est-ce pas gênant de caster l'object en AbstractElement ? Je préférerai utiliser une classe non absraite, mais non utilisable telle qu'elle non plus. Est-ce possible ? Une autre solution ?
Voilà.
Je vous remercie d'avance de l'intérêt que vous porterez à mon problème.
Partager