IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Design Patterns Discussion :

Pattern Etat Player


Sujet :

Design Patterns

  1. #1
    Membre émérite
    Avatar de bolo
    Inscrit en
    Novembre 2002
    Messages
    1 309
    Points
    2 695
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 309
    Points : 2 695
    Par défaut Pattern Etat Player
    Bonjour,

    je suis en train de créer un player j'utilise le design Etat. Pour l'instant j'ai 3 états
    Play
    Lecture
    Pause.

    Je suis en train d'implémenté le sound :
    Stopper le son
    Redémarrer le son
    Défninir le son

    Dois je créer 3 états ?
    onSound
    offSound et
    setSound ?

    Merci beaucoup

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    206
    Points
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 206
    Points : 149
    Par défaut
    Qu'est-ce que tu appelles le design Etat ? Un diagramme d'état UML ?

    Il me semble que pour l'instant, tu as trois états, ON , PAUSE et Off.

    Je ne sais pas ce que veut dire « SetSound ». Régler le son ? Mettre en ON, Pause ou Off ? Dans ce cas, c’est plutôt une transition qu’un état.

  3. #3
    Membre émérite
    Avatar de bolo
    Inscrit en
    Novembre 2002
    Messages
    1 309
    Points
    2 695
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 309
    Points : 2 695
    Par défaut
    Qu'est-ce que tu appelles le design Etat ? Un diagramme d'état UML ?
    C'est ce pattern
    http://en.wikipedia.org/wiki/State_pattern

    Il me semble que pour l'instant, tu as trois états, ON , PAUSE et Off.
    plus maintenant j'ai 2 autres états
    offSound // Stop le son
    et onSound // Démarre le son

    Je ne sais pas ce que veut dire « SetSound ». Régler le son ? Mettre en ON, Pause ou Off ? Dans ce cas, c’est plutôt une transition qu’un état.
    SetSound permet de régler le sound. pourquoi les deux états
    offSound // Stop le son
    et onSound // Démarre le son
    ne sont pas des états ?

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    206
    Points
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 206
    Points : 149
    Par défaut
    Je n’avais pas compris qu’il s’agissait du design pattern State.

    Mais même comme cela, je trouve étrange que « Stopper le son » et « Démarrer le son » soient des états. Pourquoi pas, après tout. Mais il me semble plus naturel que dans l’état « Off », la commande qui du Player qui correspond à appuyer sur un bouton marche / arrêt, par exemple, lance la fonction qui va allumer le player (le faire passer à l’état ON) ; et qu’une fois à l’état ON, le même bouton appelle la fonction qui fait passer le player à l’état OFF. Cela ne nécessiterait que deux états (pour cet aspect du fonctionnement du Player).


    Dans l'exemple donné ici (voir le code "real") http://www.dofactory.com/Patterns/PatternState.aspx , il y a des opérations comme "ajouter de l'argent" ou "retirer de l’argent". Chaque opération est implémentée différemment selon l'état, et une opération peut éventuellement provoquer un changement d'état. Mais les opérations ne sont pas des états.




    Richard

  5. #5
    Membre émérite
    Avatar de bolo
    Inscrit en
    Novembre 2002
    Messages
    1 309
    Points
    2 695
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 309
    Points : 2 695
    Par défaut
    Mais même comme cela, je trouve étrange que « Stopper le son » et « Démarrer le son » soient des états.
    Il faudrait mieux faire des transitions ?

    Mais il me semble plus naturel que dans l’état « Off », la commande qui du Player qui correspond à appuyer sur un bouton marche / arrêt, par exemple, lance la fonction qui va allumer le player (le faire passer à l’état ON) ; et qu’une fois à l’état ON, le même bouton appelle la fonction qui fait passer le player à l’état OFF. Cela ne nécessiterait que deux états (pour cet aspect du fonctionnement du Player).
    Mon premier message est incorrect
    J'ai 3 états
    Start
    Pause
    Stop

    Donc pour toi il serrait plus judicieux de faire des transitions. Donc j'aurais 3 nlles méthodes:

    stopSound()
    StartSound()
    SetVolume()

    C'est bien ca ?

    Je dois aussi ajouter un méthode Record. Je pensais faire un état
    comme cet exemple
    http://www.adobe.com/devnet/flashmed...ne_as3_04.html
    tu en penses quoi ?

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    206
    Points
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 206
    Points : 149
    Par défaut
    Je n’ai pas lu tout l’article que tu donnes en lien, mais il me semble aller en mon sens. Mais il se peut que toi et moi ayons simplement un problème de définition.

    L’idée est que tu as un certain nombre de commandes de bases, que l’utilisateur peut utiliser n’importe quand (même quand ce n’est pas approprié, comme appuyer sur Stop alors que le player est déjà stoppé).

    Selon l’état de la machine, les commandes vont être implémentées différemment. Dans l’état OFF, la commande Stop sera implémentée différemment que dans l’état ON, ou que dans l’état Pause.


    Dans le schéma exemple, tu as 5 états. Play aurait dû être appelé « Playing », parce que si tu regardes le code, tu vois que l’action startPlay dans l’état « Play » renvoie un message comme quoi le player est déjà en train de fonctionner. De même pour les 4 autres états, « Stop » ne veut pas dire en train de stopper, mais bel et bien "stoppé".

    Donc oui, il te faut les transitions qui permettent de passer d’un état à l’autre. Par exemple la transition « Play » va permettre de passer de Stopped à Playing, si l’action est demandée dans l’état Stopped, et va renvoyer un message d’erreur si l’état est déjà Playing.

    Et pour Record, pareil, tu as l'état "Recording" où le player est en train d'enregistrer, et la transition Record, qui doit être implémentée dans chaque état.


    Richard

  7. #7
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 632
    Points
    30 714
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 632
    Points : 30 714
    Par défaut
    Salut,

    Personnellement, je ne verrais bien que deux état: play et dontplay (running et notrunning, tu les nommes comme tu veux )... et trois transitions potentielles: start(), pause() (arret, sans perte de la position actuelle) et stop() (arret avec perte de la positon actuelle)...

    Je ne sais pas, cela me semblerait plus logique que d'avoir trois état, là où deux suffisent amplement

    Finalement, il n'y a qu'une chose qui importe quant à l'état: tu entend ou non...

    La seule différence venant du fait que, si tu appuies sur "stop", tu abandonne la piste en cours de lecture, alors que si tu appuies sur "pause", tu garde bien préciseusement la position à laquelle tu est arrivé sur la piste de lecture en cours
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

Discussions similaires

  1. [Etat] Cela correspond-t-il à un pattern Etat?
    Par Leskate dans le forum Design Patterns
    Réponses: 2
    Dernier message: 19/08/2011, 09h56
  2. Combinaison de plusieurs etats avec le pattern State
    Par papaetoo dans le forum Design Patterns
    Réponses: 0
    Dernier message: 18/08/2009, 12h16
  3. [Qt] Appliquation du design pattern etat
    Par Raish dans le forum Qt
    Réponses: 12
    Dernier message: 19/07/2006, 14h57
  4. C'est quoi exactement un générateur d'états
    Par Henry Cesbron Lavau dans le forum Outils de restitution et d'analyse
    Réponses: 0
    Dernier message: 02/04/2002, 20h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo