public Node(string description, string keyword, MonObserver usedObserver) { this.description = description; this.keyword = keyword; enfants = new List <IMenuComponent>(); this.usedObserver = usedObserver; }
static void Main(string[] args) { //Définition de l'Observer, des Observables et du contexte userObserver = new MonObserver(); menuObserver = new MonObserver(); HelloContext userHelloContext = new HelloContext(); HelloObservable hello = new HelloObservable(userHelloContext); SmileyObservable smiley = new SmileyObservable(); Node menu = generateMenu(); //Enregistre les observables auprès de l'observer userObserver.Register("hello", hello); userObserver.Register("Hello", hello); userObserver.Register("hello", smiley); //userObserver.Unregister("hello", smiley); userObserver.Register(menu.GetKeyWord(), menu.GetObservable()); //Prompt d'accueil string line; Console.WriteLine(""); Console.WriteLine(" __ __ __ ________ _____"); Console.WriteLine(" / / / | / / / _____/ / _ |"); Console.WriteLine(" / / / | / / / /____ / /_| |"); Console.WriteLine(" / / / |/ / /____ / / ___ |"); Console.WriteLine(" / / / /| / _____/ / / / | |"); Console.WriteLine("/__/ /__/ |___/ /_______/ /__/ |_|"); Console.WriteLine("Desing Patterns - Anthony Maudry [email protected]"); Console.WriteLine("Hello,"); Console.WriteLine("Write something (type 'exit' to exit the program)."); Console.WriteLine("Write 'menu' to go to the game menu."); //Questrion-réponse avec l'Observer qui réagit aux mots clés définits plus haut while ((line = Console.ReadLine()) != "exit") { if (0 == (userObserver.Trigger(line) + menuObserver.Trigger(line))) { Console.WriteLine("You wrote : "); Console.WriteLine(line); } } Console.WriteLine("Goodbye."); }
public NodeObservable(List<IMenuComponent> children, MonObserver usedObserver) { enfants = children; this.usedObserver = usedObserver; }