Mediator Tasarım Deseni





Bütün Kodlar
public abstract class User
{
protected WhatsabGroupMediator mediator;
protected string name;
public User(WhatsabGroupMediator mediator, string name)
{
this.mediator = mediator;
this.name = name;
}
public abstract void Send(string message);
public abstract void Receive(string message);
}
public interface WhatsabGroupMediator
{
void SendMessage(string msg, User user);
void RegisterUser(User user);
}
public class ConcreteUser : User
{
public ConcreteUser(WhatsabGroupMediator mediator, string name) : base(mediator, name)
{
}
public override void Receive(string message)
{
Console.BackgroundColor = ConsoleColor.Red;
Console.ForegroundColor = ConsoleColor.White;
Console.WriteLine(this.name + “: alınan mesaj:” + message);
}
public override void Send(string message)
{
Console.BackgroundColor = ConsoleColor.Blue;
Console.ForegroundColor = ConsoleColor.White;
Console.WriteLine(this.name + “: gönderilen mesaj=” + message + “\n”);
mediator.SendMessage(message, this);
}
}
public class ConcreteWhatsabGroupMediator : WhatsabGroupMediator
{
private List<User> usersList = new List<User>();
public void RegisterUser(User user)
{
usersList.Add(user);
}
public void SendMessage(string message, User user)
{
foreach (var u in usersList)
{
if (u != user)
{
u.Receive(message);
}
}
}
}
class Program
{
static void Main(string[] args)
{
WhatsabGroupMediator whatsabMediator = new ConcreteWhatsabGroupMediator();
User ahmet = new ConcreteUser(whatsabMediator, “Ahmet”);
User ali = new ConcreteUser(whatsabMediator, “Ali”);
User ayse = new ConcreteUser(whatsabMediator, “Ayşe”);
User fatma = new ConcreteUser(whatsabMediator, “Fatma”);
whatsabMediator.RegisterUser(ahmet);
whatsabMediator.RegisterUser(ali);
whatsabMediator.RegisterUser(ayse);
whatsabMediator.RegisterUser(fatma);
ali.Send(“Merhaba Arkadaşlar Bu Grup Dersleri Takip Etmek için oluşturulmuştur”);
Console.WriteLine();
fatma.Send(“Yarın ders varmı arkadaşlar”);
Console.WriteLine();
ahmet.Send(“Bugün mustafa hocayla konuştum yok dedi”);
Console.WriteLine();
ayse.Send(“Yaşasın yarın tatil desene……!!!!!”);
Console.Read();
}
}