L'éclatement du package jmonypenny.archiver est simple et direct. Il est logique
de diviser l'action pour chaque rubrique de menu dans sa propre classe. De même,
les classes ArchiveFile et ArchiveTree encapsulent des parties importantes de
l'application.
Comment les divers morceaux vont ensemble, est moins évident. Comment ArchiveFrame
s'adresse aux diverses
Relier les morceaux entre eux
actions ? Comment les actions appellent des méthodes dans
les classes ArchiveFile et ArchiveTree ? A titre d’exemple, voyons comment la
rubrique de menu Insert fonctionne. ArchiveFrame crée une instance d’une InsertAction:
private InsertAction insertAction =
new InsertAction(this);
Le constructeur InsertAction stocke ce ArchiveFrame pour référence future :
public InsertAction(ArchiveFrame parent) {
this.parent = parent;
ArchiveFrame ajoute l’insertAction au actionMenu :
actionMenu.add(new MenuAction
(insertAction));
La classe MenuAction de jmonypenny.glue.ui crée un objet du menu ayant la fonction
de moniteur
addActionListener(action);
Quand l’utilisateur choisit l’option Insert dans le menu Actions, Java déclenche
un ActionEvent qui est intercepté par l’insertAction :
public void actionPerformed(
ActionEvent event) {
La méthode actionPerformed demande à l’utilisateur la liste des fichiers à insérer,
puis démarre un » thread » pour insérer les fichiers.
Rappelons que InsertAction stocke une référence au ArchiveFrame parent qui l’a
créé. InsertAction utilise le ArchiveFrame parent comme un pont vers les ArchiveFile
et ArchiveTree courants. ArchiveFrame inclut les méthodes d’accès getFile et GetTree
pour renvoyer les références aux ArchiveFile et ArchiveTree courants, respectivement.
D’abord, InsertAction exécute la méthode addEntries de ArchiveFile via la méthode
ArchiveFrame getFile parente :
parent.getFile().addEntries(
list, currentPath, compress);
Puis, InsertAction exécute la méthode ArchiveTree insertTreeData via la méthode
ArchiveFrame getTree parente :
parent.getTree().insertTreeData(
parent.getFile().getNames());
Le processus que je viens de décrire n’est pas le plus pur coding OO qui soit.
InsertAction sait que ArchiveFrame utilise les classes ArchiveFile et ArchiveTree.
Il vaudrait peut-être mieux que ArchiveFrame fasse l’intermédiaire entre InsertAction
et ArchiveFile et ArchiveTree. Pour ce faire, on pourrait ajouter une méthode
insertEntries à ArchiveFrame qui a exécuté les méthodes ArchiveFile addEntries
et ArchiveTree insertTreeData sous-jacentes.
Cependant, cette approche transfère du code qui fait fonctionnellement partie
de l’InsertAction dans ArchiveFrame pour supprimer les dépendances. Je vous laisse
le soin de comparer les mérites de ces deux approches quand on les applique à
l’ensemble de l’application.
Téléchargez cette ressource
Plan de sécurité Microsoft 365
Les attaquants savent comment prendre le contrôle de votre tenant Microsoft 365, et vous, savez-vous comment le reprendre en main ?
Les articles les plus consultés
- Cybersécurité Active Directory et les attaques de nouvelle génération
- N° 2 : Il faut supporter des langues multiples dans SharePoint Portal Server
- Et si les clients n’avaient plus le choix ?
- Afficher les icônes cachées dans la barre de notification
- Activer la mise en veille prolongée dans Windows 10
Les plus consultés sur iTPro.fr
- IA de confiance : le facteur clé pour rentabiliser les projets d’entreprise
- Quand les « travailleurs numériques » pallient le manque de bras dans l’industrie
- Hôpitaux virtuels : renforcer le système de santé français grâce au numérique
- Cybercriminalité bancaire : l’IA industrialise les attaques en 2026
Articles les + lus
Quand les « travailleurs numériques » pallient le manque de bras dans l’industrie
Model Context Protocol : le contexte, grand oublié du débat
Microsoft dévoile MAI-Thinking-1 : un modèle de raisonnement « enterprise-grade » en preview publique
Couchbase lance AI Data Plane pour industrialiser l’IA agentique
Windows 11 : Microsoft généralise le point-in-time restore pour accélérer la remise en service des PC
À la une de la chaîne Tech
- Quand les « travailleurs numériques » pallient le manque de bras dans l’industrie
- Model Context Protocol : le contexte, grand oublié du débat
- Microsoft dévoile MAI-Thinking-1 : un modèle de raisonnement « enterprise-grade » en preview publique
- Couchbase lance AI Data Plane pour industrialiser l’IA agentique
- Windows 11 : Microsoft généralise le point-in-time restore pour accélérer la remise en service des PC
