Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Text;
- using System.Threading;
- using System.Linq;
- using System.Threading.Tasks;
- class Program
- {
- static void Main(string[] args)
- {
- ManagerMediator mediator = new ManagerMediator();
- Collegue customer = new CustomerCollegue(mediator);
- Collegue programmer = new ProgrammerCollegue(mediator);
- Collegue tester = new TesterCollegue(mediator);
- mediator.Customer = customer;
- mediator.Programmer = programmer;
- mediator.Tester = tester;
- customer.Send("Есть заказ, надо сделать программу");
- programmer.Send("Программа сделана, надо провести тест");
- tester.Send("Программа протестирована и готова к продаже");
- Console.ReadLine();
- }
- }
- abstract class Mediator
- {
- public abstract void Send(string msg, Collegue collegue);
- }
- abstract class Collegue
- {
- protected Mediator mediator;
- public Collegue(Mediator mediator)
- {
- this.mediator = mediator;
- }
- public virtual void Send(string message)
- {
- mediator.Send(message, this);
- }
- public virtual void Notify(string message)
- {
- Console.WriteLine("Сообщение заказчику: " + message);
- }
- }
- class CustomerCollegue : Collegue
- {
- public CustomerCollegue(Mediator mediator) : base(mediator)
- {
- }
- public override void Notify(string message)
- {
- Console.WriteLine("Сообщение заказчику " + message);
- }
- }
- class ProgrammerCollegue : Collegue
- {
- public ProgrammerCollegue(Mediator mediator) : base(mediator)
- {
- }
- public override void Notify(string message)
- {
- Console.WriteLine("Сообщение программисту " + message);
- }
- }
- class TesterCollegue : Collegue
- {
- public TesterCollegue(Mediator mediator) : base(mediator)
- {
- }
- public override void Notify(string message)
- {
- Console.WriteLine("Сообщение тестеру " + message);
- }
- }
- class ManagerMediator : Mediator
- {
- public Collegue Customer{get;set;}
- public Collegue Programmer{get;set;}
- public Collegue Tester{get;set;}
- public override void Send(string msg, Collegue collegue)
- {
- if(Customer == collegue)
- Programmer.Notify(msg);
- else if(Programmer == collegue)
- Tester.Notify(msg);
- else if(Tester == collegue)
- Customer.Notify(msg);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement