Bonjour,

Voici un problème que je rencontre souvent. Je ne sait pas s'il existe un design pattern pour simplifier le problème.

Je dois souvent synchroniser des données. Par exemple dans un logiciel d'édition vidéo, je dois choisir une borne de début et une de fin.
Dans mon interface graphique j'ai 3 endroits où cela peut être saisie:
- Une barre avec deux curseurs (zone 1)
- Deux zones de saisie ou l'utilisateur peut entrer un temps de cette forme 00:30:10 (heure:minute:seconde). (zone 2)
- Deux zones de saisie d'entier qui représente le début et la fin en nombre de frames. (zone 3)
- Les deux informations (début et fin en nombre de frames) sont stockés dans une classe métier. (zone 4)
- Éventuellement je dois modifier une autre valeur qui dépend de ces informations. (zone 5)

En plus il faut s'assurer de cette égalité en permanence :
MIN< nFramesDebut < nFramesFin < FIN
où MIN et FIN sont des constantes. MIN = 0 et FIN = nombre de frame de la vidéo ouverte.

Voici le genre d'algorithme que je met en place :
Quand la zone 1 est modifié :
>-SI(NON(zone1_is_changing ))
>---mettre un verrou zone1_is_changing = true
>---SI(les données sont valides)
>-----Mettre à jour zone 2
>-----Mettre à jour zone 3
>-----Mettre à jour zone 4
>-----SI(La zone 5 n'est plus valide)
>-------Mettre à jour zone 5
>-----FIN SI
>---FIN SI
>---mettre un verrou zone1_is_changing = false
>-FIN SI

Quelqu'un connait un design pattern qui serait adapté à ce genre de truc ?

Merci d'avance