Example #1
0
        public static void Run()
        {
            Handler emailHandler = new SpamHandler(
                new FanHandler(
                    new ComplaintHandler(
                        new NewLocHandler(null))));

            Email eSpam = new Email(EmailType.Spam, "Dear Dir, I am a Nigerian prince in need to transfer large sums of money out of the country. All I need is your bank account number ...");

            emailHandler.HandleRequest(eSpam);

            Email eFan = new Email(EmailType.Fan, "I love your gumball machines! Please stock them with more bubble-gum flavors :-) ");

            emailHandler.HandleRequest(eFan);

            Email eComplaint = new Email(EmailType.Complaint, "I swear, if I get one more black licorice flavored gumball, I am going to break your machines!");

            emailHandler.HandleRequest(eComplaint);

            Email eOther = new Email(EmailType.Unclassified, "We would love to have one of your machines installed in our dentist waiting room ...");

            emailHandler.HandleRequest(eOther);
        }
Example #2
0
        public static void TestChainOfResponsibility()
        {
            Console.WriteLine("----------------------Chain of Responsibility----------------------");
            EmailHandler spamHandler         = new SpamHandler();
            EmailHandler fanHandler          = new FanHandler();
            EmailHandler complaintHandler    = new ComplaintHandler();
            EmailHandler newLocationHandler  = new NewLocationHandler();
            EmailHandler unknownEmailHandler = new UnknownEmailHandler();

            spamHandler.Handler        = fanHandler;
            fanHandler.Handler         = complaintHandler;
            complaintHandler.Handler   = newLocationHandler;
            newLocationHandler.Handler = unknownEmailHandler;

            Console.WriteLine("Spam email:");
            spamHandler.HandleEmail("Spam");

            Console.WriteLine("\nFan email");
            spamHandler.HandleEmail("Fan");

            Console.WriteLine("\nComplaint email:");
            spamHandler.HandleEmail("Complaint");

            Console.WriteLine("\nNew location email:");
            spamHandler.HandleEmail("Location");

            Console.WriteLine("\nAdvertisement email:");
            spamHandler.HandleEmail("Advertisement");


            complaintHandler.Handler = null;
            Console.WriteLine("\n(Broken chain)New Location email:");
            spamHandler.HandleEmail("Location");

            Console.WriteLine("---------------------------------------------------\n");
        }