تا %60 تخفیف خرید برای 5 نفر با صدور مدرک فقط تا
00 00 00
فاطمه30

تحلیل و بهینه سازی کد چت روم Chatroom

سلام کسی مس تونه بگه این کد چی کار میکنه؟

ممنون میشم سریع تر جواب بدین

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

public class Client
{
    public static void Main()
    {
        ApplicationMediator mediator = new ApplicationMediator();
        ConcreteColleague desktop = new ConcreteColleague(mediator);
        MobileColleague mobile = new MobileColleague(mediator);
        mediator.addColleague(desktop,"groupA");
        mediator.addColleague(mobile, "groupB");
        desktop.send("Hello World", "groupA");
        mobile.send("Hello", "groupB");

        Console.ReadKey();
    }
}


public interface Mediator
{
    void send(String message, Colleague colleague,String groupName);

}

public abstract class Colleague
{
    private Mediator mediator;
    public Colleague(Mediator m)
    {
        mediator = m;
    }
    //send a message via the mediator
    public void send(String message,string groupName)
    {
        mediator.send(message, this, groupName);
    }
    //get access to the mediator
    public Mediator getMediator()
    {
        return mediator;
    }
    public abstract void receive(String message);
}



public class ApplicationMediator : Mediator
{
    private List<Colleague> colleagues;
    private Dictionary<string, List<Colleague>> dictionary;
    public ApplicationMediator()
    {
        // colleagues = new List<Colleague>();
        dictionary = new Dictionary<string, List<Colleague>>();
    }
    public void addColleague(Colleague colleague,string groupName)
    {

        //colleagues.Add(colleague);
        if (!dictionary.ContainsKey(groupName))
        {
            dictionary.Add(groupName, new List<Colleague>());
        }
        dictionary[groupName].Add(colleague);

    }
    public void send(String message, Colleague originator,String groupName)
    {
        
        //let all other screens know that this screen has changed
        foreach (var colleague in dictionary[groupName])
        {
            //don't tell ourselves
            if (colleague != originator)
                colleague.receive(message);
        }
    }
}

public class ConcreteColleague : Colleague
{
    public ConcreteColleague(Mediator m) : base(m) { }
    public override void receive(String message)
    {
        Console.WriteLine("Colleague Received: " + message);
    }
}
public class MobileColleague : Colleague
{

    public MobileColleague(Mediator m) : base(m) { }
    public override void receive(String message)
    {
        Console.WriteLine("Mobile Received: " + message);
    }
}

#چت_روم #الگوی_مدیاتور #سی_شارپ

لذت یادگیری با توسینسو
به عنوان شخصی که مدت هاست از سایت توسینسو استفاده می کنم باید بگم که واقعاً یکی از بهترین مرجع ها برای ارتقاء دانش شخصی هست. دوره های سایت، راهکارها و مطالب، همگی عالی هستند.

سلام به شما دوست عزیز

این کد شما که بر مبنای الگوی mediator‌ نوشته شده یک سیستم چت را شبیه سازی کرده است که یک اینترفیس ساخته که در داخل آن فقط متد send وجود دارد که برای استفاده در کلاس Colleague استفاده می شود. این کلاس یک کلاس abstract است که برای بقیه کلاس ها استفاده می شود. این کلاس Colleague توسط دو کلاس ConcreteColleague و MobileColleague استفاده شده است. در هر کدام از کلاس های فرزند باید متد receive پیاده سازی شود. کلاسApplicationMediator کلاسی است که گروه ها و مخاطب های چت را در خود نگهداری می کند. در انتها در متد main برای اجرای این برنامه استفاده می شود.

کانال تلگرام، اینستاگرام، توییتر: mehdiadeli9
پاسخ شما
برای ارسال پاسخ خود وارد شوید.