static void Main(string[] args) { //két alkalmazás modul, ami igényt tart az információra //naplózás var log = new Logger(); //felhasználói felület var ui = new UserInterface(); //hosszantartó folyamat var process = new LongRunningProcess(); process.DataChanged += log.Message; process.DataChanged += ui.Message; //process.ObserverCallList = null; // process.ObserverCallList(new LongRunningProcess()); process.Start(); process.DataChanged -= log.Message; process.DataChanged -= ui.Message; Console.WriteLine("A folyamat lefutott!"); Console.ReadLine(); }
static void Main(string[] args) { //The two application modules that require information //they are the observers: (Observers) //logging var log = new Logger(); //and user interface var ui = new UserInterface(); //the long-term process var process = new LongRunningProcess(); process.Subscribe(log); process.Subscribe(ui); process.Start(); process.Unsubscribe(log); process.Unsubscribe(ui); Console.WriteLine("The process is done."); Console.ReadLine(); }
static void Main(string[] args) { //a két alkalmazás modul, ami igényt tart az információra //ők a megfigyelők: (Observers) //naplózás var log = new Logger(); //és felhasználói felület var ui = new UserInterface(); //a hosszantartó folyamatunk var process = new LongRunningProcess(); process.Subscribe(log); process.Subscribe(ui); process.Start(); process.Unsubscribe(log); process.Unsubscribe(ui); Console.WriteLine("A folyamat lefutott"); Console.ReadLine(); }
static void Main(string[] args) { //The two application modules that require information //they are the observers: (Observers) //logging var log = new Logger(); //and user interface var ui = new UserInterface(); //the long-term process var process = new LongRunningProcess(); process.DataChanged += log.Message; process.DataChanged += ui.Message; /// Problems: /// /// 1. I can initialize the call list from the outside /// process.ObserversCallList = null; /// /// The builder already does not allow this by event: /// process.DataChanged = null; /// /// 2. I can call the call list from outside /// process.ObserversCallList(new LongRunningProcess()); /// /// The builder already does not allow this by event: /// process.DataChanged(new LongRunningProcess(), "I cheated"); process.Start(); process.DataChanged -= log.Message; process.DataChanged -= ui.Message; Console.WriteLine("The process is done."); Console.ReadLine(); }
static void Main(string[] args) { //a két alkalmazás modul, ami igényt tart az információra //ők a megfigyelők: (Observers) //naplózás var log = new Logger(); //és felhasználói felület var ui = new UserInterface(); //a hosszantartó folyamatunk var process = new LongRunningProcess(); process.DataChanged += log.Message; process.DataChanged += ui.Message; ///Problémák: ///1. a híváslistát tudom kívülről inicializálni //process.ObserversCallList = null; //eseménynél ezt már a fordító sem engedi: //process.DataChanged = null; ///2. a híváslistát meg tudom hívni kívülről //process.ObserversCallList(new LongRunningProcess()); //eseménynél ezt már a fordító sem engedi: //process.DataChanged(new LongRunningProcess(), "csaltam"); process.Start(); process.DataChanged -= log.Message; process.DataChanged -= ui.Message; Console.WriteLine("A folyamat lefutott"); Console.ReadLine(); }