Exemple #1
0
        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();
        }
Exemple #2
0
        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();
        }
Exemple #4
0
        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();
        }
Exemple #5
0
        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();
        }