Mediator Tasarım Deseni

ilhan DEMİRTEPE
2 min readFeb 7, 2021

--

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();

}

}

--

--

ilhan DEMİRTEPE
ilhan DEMİRTEPE

No responses yet