Automate pour controler commande en java
Résolu/Fermé
A voir également:
- Automate pour controler commande en java
- Invite de commande - Guide
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Commande terminal mac - Guide
- Java apk - Télécharger - Langages
1 réponse
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
Modifié par KX le 27/08/2011 à 21:28
Modifié par KX le 27/08/2011 à 21:28
Pourquoi faire ça avec un automate !?
Il te suffit de suivre l'évolution de ta commande avec un enum par exemple...
Et si tu enfreint tes propres règles, par exemple annuler alors que la commande n'est pas à l'état Creer, tu génères une exception que tu récupéreras au bon moment.
La confiance n'exclut pas le contrôle
Il te suffit de suivre l'évolution de ta commande avec un enum par exemple...
Et si tu enfreint tes propres règles, par exemple annuler alors que la commande n'est pas à l'état Creer, tu génères une exception que tu récupéreras au bon moment.
public class Commande { protected class EtatException extends Exception { private static final long serialVersionUID = 1L; } protected enum Etat {Creer, Livrer, Annuler, Bloquer, Traiter}; private Etat etat = null; public void annuler() throws EtatException { if (etat==Etat.Creer) { etat=Etat.Annuler; } else { throw new EtatException(); } } }
La confiance n'exclut pas le contrôle
27 août 2011 à 23:28
en fait j'ai pensé de le faire avec automate car dans mon application l'admin peut choisir une commande puis modifier son etat via une liste déroulant donc j é pensé à un automate si etat d'une commande est créer et l'etat choisi par l'admin est annuler alors on accepte le changement d'etat si par exemple une commande livrée alors on ne peut ps l'annuler et ainsi de suite .
27 août 2011 à 23:57
Dans mon exemple de code, ma méthode annuler est l'évènement qui déclenche la transition de l'état Creer à l'état Annuler. Donc finalement l'automate je l'ai respecté dans mon code.
En effet, si on choisi d'annuler on lance la méthode annuler, si l'état est Creer alors on passe à l'état Annuler, sinon on a une erreur (qu'il faudra indiquer à l'admin).
Remarque : plutôt que de créer une erreur car l'admin aura annulé alors qu'il ne le pouvait pas, tu peux créer une méthode qui te renvoie la liste des actions possibles (des états à atteindre) à partir de ton état, ainsi ton admin ne pourra pas annuler si la commande est déjà Livrer car c'est une action qu'il n'aura pas sur son écran vu que tu auras préalablement consulté les transitions acceptables grâce à ton automate.
Donc l'automate c'est sur le papier (ou alors un joli diagramme UML) mais quand on code en Java, sur la machine c'est avec ce genre de code qu'on travaille.
28 août 2011 à 00:19
je vais chercher comment je peux intégrer ca dans mon code car dans la base de donnée j 'ai mis etat comme String et aprés mapping et genération des classe alors il est mentionné comme String je sé ps si ca va inflencer ce que j'ai déja fait .
d'autre part je suis un peu bloquer car j'ai fait les fonction DAO (hibernate+spring) et je sé ps exactement ou je peux mis ca class java ; DAO ; service :( est ce que tu as une idée merci d'avance
28 août 2011 à 00:25
Pour le reste c'est du J2EE et je n'en sais rien ! Moi le J2SE me suffit ;-)
28 août 2011 à 00:36