static void Main(string[] args) { try { Voiture v = new Voiture(enEtatVoiture.Immobile); Console.WriteLine("La Voiture est dans l'état {0}", v.Etat); v.Deplacer(); Console.WriteLine("La Voiture est dans l'état {0}", v.Etat); v.Arreter(); Console.WriteLine("La Voiture est dans l'état {0}", v.Etat); v.FaireService(); Console.WriteLine("La Voiture est dans l'état {0}", v.Etat); v.EffectuerCourseEssai(); Console.WriteLine("La Voiture est dans l'état {0}", v.Etat); v.RetournerauGarage(); Console.WriteLine("La Voiture est dans l'état {0}", v.Etat); v.RetourService(); Console.WriteLine("La Voiture est dans l'état {0}", v.Etat); v.MettreEnVente(); Console.WriteLine("La Voiture est dans l'état {0}", v.Etat); v.Vendre(); Console.WriteLine("La Voiture est dans l'état {0}", v.Etat); v.Vendre(); Console.WriteLine("La Voiture est dans l'état {0}", v.Etat); } catch (TransitionEtatImpossibleException e) { Console.WriteLine(e.Message); } }
// Constructeur public EnDeplacement(Voiture v) : base(v) { etatCourant = enEtatVoiture.EnDeplacement; }
// Constructeur public EtatVoiture(Voiture v) { voiture = v; }
public EnMaintenance(Voiture v) : base(v) { etatCourant = enEtatVoiture.EnMaintenance; }
public Immobile(Voiture v) : base(v) { etatCourant = enEtatVoiture.Immobile; }
public Vendue(Voiture v) : base(v) { etatCourant = enEtatVoiture.Vendue; }
public EnVente(Voiture v) : base(v) { etatCourant = enEtatVoiture.EnVente; }