Example #1
0
        static void Main(string[] args)
        {
            var doer = new Doer();

            UserInterface userInterface = new UserInterface();
            Logger        logger        = new Logger();

            doer.AfterDoSomethingWith += userInterface.AfterDoSomethingWith;
            doer.AfterDoSomethingWith += logger.AfterDoSomethingWith;
            doer.AfterDoMore          += logger.AfterDoMore;


            //doer.AfterDoSomethingWith =
            //    new MulticastNotifier<string>(

            //        new DesignPatterns.Observer.IObserver<string>[] {

            //            userInterface.AfterDoSomethingWith,
            //            logger.AfterDoSomethingWith

            //        });
            //doer.AfterDoMore =
            //    new MulticastNotifier<Tuple<string, string>>(
            //    new DesignPatterns.Observer.IObserver<Tuple<string, string>>[]
            //        {
            //            logger.AfterDoMore

            //        });



            doer.DoSomethingWith("my data");
            doer.DoMore("tail");

            // composite pattern
            //var drawing = new GraphicObject { Name = "My Drawing" };
            //drawing.Children.Add(new Circle { Color = "Red" });
            //drawing.Children.Add(new Square { Color = "Yelllow" });

            //var group = new GraphicObject();
            //drawing.Children.Add(new Circle { Color = "Blue" });
            //drawing.Children.Add(new Square { Color = "Blue" });
            //drawing.Children.Add(group);
            //Console.WriteLine(drawing);



            Console.ReadLine();
        }