You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

52 lines
1.5 KiB

using ConsoleApp1.intf;
using ConsoleApp1.pubsub;
using ConsoleApp1.pubsub.generics;
namespace ConsoleApp1
{
internal class Program
{
static void Main(string[] args)
{
IPublisher<IMessage> pub1 = h_generics();
IPublisher<IMessage> pub2 = h_fixedClasses();
string[] arss = new string[] { "EXCEPTION", "INFO", "DEBUG" };
for (int ii = 0; ii < 10; ii++)
{
Thread.Sleep(1000);
IMessage msg = new Message()
{
Category = arss[Random.Shared.Next(arss.Length)],
Text = $"{ii}"
};
pub1.Publish(msg);
pub2.Publish(msg);
};
}
private static IPublisher<IMessage> h_generics()
{
IPublisher<IMessage> pub = new Publisher<IMessage>();
ISubscriber<IMessage> sub1 = new ConsoleSubscriber<IMessage>();
ISubscriber<IMessage> sub2 = new ColoredConsoleSubscriber<IMessage>();
pub.Subscribe(sub1);
pub.Subscribe(sub2);
return pub;
}
private static IPublisher<IMessage> h_fixedClasses()
{
IPublisher<IMessage> pub = new MsgPublisher();
ISubscriber<IMessage> sub1 = new MsgConsoleSubscriber();
ISubscriber<IMessage> sub2 = new MsgColoredConsoleSubscriber();
pub.Subscribe(sub1);
pub.Subscribe(sub2);
return pub;
}
}
}