示例#1
0
        static void Main(string[] args)
        {
            Publisher danceGenrePublisher   = new Publisher();
            Publisher rockGenrePublisher    = new Publisher();
            Publisher countryGenrePublisher = new Publisher();

            Subscriber allGenreSubscriber   = new Subscriber();
            Subscriber danceGenreSubscriber = new Subscriber();
            Subscriber rockGenreSubscriber  = new Subscriber();



            PubSubServer server = new PubSubServer();

            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.WriteLine(" ******  Data Input is Genre of Music   ********");
            Console.WriteLine(" ******        DANCE, ROCK, COUNTRY     ********");
            Console.WriteLine(" ***** Subscribers will receive description ****");
            Console.WriteLine(" ***** of music Genre they subscribe too    ****");
            Console.ResetColor();
            Console.WriteLine("");
            Console.WriteLine("");


            //INPUT DATA
            Message danceGenreMessage = new Message();

            danceGenreMessage.genre       = "Dance";
            danceGenreMessage.description = "Dance music is popular in clubs.";

            Message rockGenreMessage = new Message();

            rockGenreMessage.genre       = "Rock";
            rockGenreMessage.description = "Rock music was very popular in the 90's";

            Message countryGenreMessage = new Message();

            countryGenreMessage.genre       = "Country";
            countryGenreMessage.description = "You can line dance with country music";

            //Sender
            danceGenrePublisher.Send(danceGenreMessage, server);
            rockGenrePublisher.Send(rockGenreMessage, server);
            countryGenrePublisher.Send(countryGenreMessage, server);


            //receiver
            allGenreSubscriber.Listen("Dance");
            allGenreSubscriber.Listen("Rock");
            allGenreSubscriber.Listen("Country");


            danceGenreSubscriber.Listen("Dance");
            rockGenreSubscriber.Listen("Rock");


            server.subscribers.Add(allGenreSubscriber);
            server.subscribers.Add(danceGenreSubscriber);
            server.subscribers.Add(rockGenreSubscriber);


            server.Next();

            Console.ForegroundColor = ConsoleColor.Blue;
            Console.WriteLine("The all Genre Subscriber has subscribed to the following");
            Console.ResetColor();
            //receiver print
            allGenreSubscriber.Print();

            Console.WriteLine("");

            Console.ForegroundColor = ConsoleColor.Blue;
            Console.WriteLine("The Dance Genre Subscriber has subscribed to the following");
            Console.ResetColor();
            danceGenreSubscriber.Print();

            Console.WriteLine("");

            Console.ForegroundColor = ConsoleColor.Blue;
            Console.WriteLine("The Rock Genre Subscriber has subscribed to the following");
            Console.ResetColor();
            rockGenreSubscriber.Print();


            Console.ReadKey();
        }
示例#2
0
 public void Send(Message newMessage, PubSubServer myServer)
 {
     myServer.buffer.Enqueue(newMessage);
 }