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
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;
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|