Précédent   Forum du club des développeurs et IT Pro > Général Développement > ALM > Design Patterns
Design Patterns Forum d'entraide sur l'utilisation des Design Patterns (GRASP, GOF, etc.) et la recherche de solution à des problèmes récurrents. Avant de poster : Les tutoriels sur les DP. Privilégiez le forum Architecture pour vos questions sur les patterns architecturaux (PAC, MVC, etc.)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 04/04/2012, 11h45   #1
cedrix57
Invité(e)
 
Messages : n/a
Détails du profil
Informations forums :
Messages : n/a
Points : 0
Par défaut Design pattern pour la synchronisation des données

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
  Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2012, 15h50   #2
kain_tn
Membre Expert
 
Avatar de kain_tn
 
Homme
Inscription : mars 2005
Messages : 600
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations forums :
Inscription : mars 2005
Messages : 600
Points : 1 329
Points : 1 329
Bonjour,

Tu peux peut-être regarder du côté des "évènements". Tu crées des objets qui sont abonnés à des évènements et d'autres qui "écoutent" les modifications pour lancer des évènements.

Il y a par exemple le design pattern "Observer".
__________________
Copier c'est copier; voler c'est vendre un CD une vingtaine d'euros!


Code C :
1
2
3
4
5
6
7
#include <stdio.h>
 
int main(int argc, char **argv) {
 
    printf("So long, and thanks for the fish, Dennis...\n");
    return 0;
}
kain_tn est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 23/11/2012, 12h31   #3
pseudocode
Rédacteur/Modérateur
 
Avatar de pseudocode
 
Homme Xavier Philippeau
Architecte système
Inscription : décembre 2006
Messages : 9 839
Détails du profil
Informations personnelles :
Nom : Homme Xavier Philippeau
Âge : 40
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Architecte système
Secteur : Industrie

Informations forums :
Inscription : décembre 2006
Messages : 9 839
Points : 16 520
Points : 16 520
Citation:
Envoyé par cedrix57 Voir le message
Quelqu'un connait un design pattern qui serait adapté à ce genre de truc ?

Merci d'avance
on dirait du MVC

Model:
MIN, nFramesDebut, nFramesFin, FIN

View:
CurseurGauche
CurseurDroite
TexteHeureDébut
TexteHeureFine
Texte..

Controller:
MouvementCurseurGauche()
MouvementCurseurDroite()
EditionFrameDebut()
EditionFrameFin()
__________________
ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.
pseudocode est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 13h54.


 
 
 
 
Partenaires

Hébergement Web