Bonjour à tous, étant novice dans le développement JAVA, je souhaiterai avoir votre avis sur l'architecture de mon programme.
J'ai développé quelques petites applications en PHP+MySQL avec le modèle MVC. Dans la couche Métier, je m'étais tous ce qui était interrogation de la base de données, la vue correspondait à l'IHM et le contrôleur faisait le lien entre les 2.
Je ne sais pas trop comment mettre en place un contrôleur dans une application locale développé en JAVA. J'ai toujours ma couche métier qui me permet de communiquer avec la BDD, mais pour l'instant c'est ma vue qui fait office en même temps de contrôleur.
Chaque vue interroge indépendamment la couche métier et affiche le résultat à l'écran.
J'ai du mal à trouver des tutoriaux sur l'architecture d'un programme en JAVA. Pour l'instant voici comment je m'organise, à l'ouverture de mon programme, je crée ma JFrame (mon pseudo contrôleur) dans laquelle j'instancie les différentes vues (dans mon cas les JPanel).
Je voudrais avoir votre avis sur ce code qui est propre à ma façon de procéder. Pouvez vous me donner des exemples, des conseils ou des liens pour la mise en place de mon conteneur principal?
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69 public class Controler extends JFrame { public Controler() { super(); // Menu Animal JMenuItem itemChien = new JMenuItem("Chien"); itemChien.addActionListener(new ChienListener()); JMenuItem itemChat = new JMenuItem("Chat"); itemChat.addActionListener(new ChatListener()); JMenu menuAnimal = new JMenu("Animal"); menuAnimal.add(itemChien); menuAnimal.add(itemChat); // Menu Véhicule JMenuItem itemVoiture = new JMenuItem("Voiture"); itemVoiture.addActionListener(new VoitureListener()); JMenu menuVehicule = new JMenu("Véhicule"); menuVehicule.add(itemVoiture); // Menu général JMenuBar menuGlobal = new JMenuBar(); menuGlobal.add(menuAnimal); menuGlobal.add(menuVehicule); this.setTitle("Mon programme"); this.setJMenuBar(menuGlobal); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setPreferredSize(new Dimension(1024, 768)); JFrame.setDefaultLookAndFeelDecorated(true); this.pack(); this.setExtendedState(MAXIMIZED_BOTH); this.setLocationRelativeTo(null); this.setVisible(true); } // EVENEMENT class ChienListener implements ActionListener { public void actionPerformed(ActionEvent e) { getContentPane().setVisible(false); getContentPane().removeAll(); getContentPane().add(new PanelChien()); getContentPane().setVisible(true); } } class ChatListener implements ActionListener { public void actionPerformed(ActionEvent e) { getContentPane().setVisible(false); getContentPane().removeAll(); getContentPane().add(new PanelChat()); getContentPane().setVisible(true); } } class VoitureListener implements ActionListener { public void actionPerformed(ActionEvent e) { getContentPane().setVisible(false); getContentPane().removeAll(); getContentPane().add(new PanelVoiture()); getContentPane().setVisible(true); } } }
Partager