Bonjour,
Je travaille actuellement sur l'IHM d'une application permettant l'édition des paramètres d'objets d'un model business.
Pour permettre un retour à l'état initial après annulation de l'édition de ces objets, j'envisagais l'implémentation du design pattern Memento (décrit dans l'ouvrage Design Patterns du Gof) prévu à cet effet.
Cependant, il faut savoir que les attributs des objets business, sur lesquels je travaille, sont tous accessibles et modifiables via getter et setter, (ce qui n'est pas le cas dans les exemples du livre du Gof). L'un des intérets de Memento qui est de permettre la sauvegarde de l'état interne d'un objet sans avoir accès aux attributs caractérisant cet état, ne s'applique pas dans mon cas.
Par ailleurs le memento récupéré dans mon cas est très proche de l'objet business. En effet tous les attributs de l'objet business sont sotckés dans le memento.
Celà signifie-t-il que ce pattern ne doit pas être utilisé dans ce cas? Y a-t-il un pattern plus approprié ? Je ne le pense pas... Mais mes collègues: Si!!. Ils préfèrent la solution suivante
Pour éviter l'implémentation du Memento (qui leur semble lourde), il faudrait cloner les objets avant édition, puis de les restituer en cas d'annulation.
Cette deuxième solution me semble moins propre, mais peut-être plus facilement compréhensible par la majorité des développeurs que l'implémentation de Memento.
Qu'en pensez-vous ?
Merci
Partager