Pattern commande et modèle complexe
Je travaille actuellement sur un éditeur d'analyses syntaxiques (des forêts d'arbres), et je l'ai doté de fonctionnalités undo/redo en utilisant le pattern commande.
Mais j'ai du mal à trouver une architecture qui me satisfasse vraiment. Je m'explique :
Les opérations sur le modèle sont assez complexes : supprimer un noeud entraîne par exemple une réorganisation des arcs qui constituent mon graphe.
Bref, pour enregistrer tout ce qui doit être fait et/ou défait par la commande, en gardant l'encapsulation du modèle, la seule manière que je vois est de faire créer les commandes par le modèle. Mais d'une certaine manière, pour rester cohérent, cela supposerait que le modèle ne soit doté que de méthodes créant des commandes (et de méthodes permettant de consulter les données), et d'aucune méthode de modification directe.
ça me semble logique, mais je ne vois nulle part d'implémentation de ce genre. Est-ce que je suis à l'ouest ?
Bien cordialement,
R7