Ça change l'architecture de ton programme, et, surtout la visibilité des méthodes : si tu implémentes ActionListener sur la classe qui étend JFrame, on pourrait invoquer la méthode actionPerformed() dans une classe qui a une référence sur l'instance de JFrame. C'est pourquoi, en général, on implémente le contrôleur (la classe qui, entre autre, centralise les écouteurs) sous forme de classe interne, un troisième cas que tu n'as pas proposé :
1 2 3 4 5 6
| public class Fenetre extends JFrame {
private class Controleur implements ActionListener {
}
} |
En plus, cette classe très liée au fonctionnement de ta fenêtre n'est utilisable que dans cette classe. Si tu as du code à partager réutilisable, tu peux créer une abstraction externe qui contient ce code commun, et faire que la classe Controleur étende cette abstraction.
Partager